Linux下Mysql5.5的Cmake安装以及sphinx结合
首先需要添加mysql用戶組和mysql用戶
?? groupadd mysql
?? useradd -g mysql mysql
?? passwd -u mysql
1. 安裝需要的軟件包
?? yum install gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel
?? yum install ncurses-devel make
?? yum install make
?? yum install cmake bison
??
2. 下載mysql源碼包后解壓到指定目錄
??? mkdir /data/
??? cd /data/ #把安裝包放入到這個文件夾
??? tar -zxvf mysql-5.5.14.tar.gz
3. 進入解壓后的源碼包
?? cd mysql-5.5.14
4. cmake進行編譯(首先要創建數據文件夾和安裝文件夾, 如果路徑不存在)
?? cmake . \
?? -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
?? -DMYSQL_DATADIR=/var/tmp/mysql/ \
?? -DMYSQL_UNIX_ADDR=/var/tmp/mysql/mysqld.sock \
?? -DDEFAULT_CHARSET=utf8 \
?? -DEXTRA_CHARSETS=all \
?? -DDEFAULT_COLLATION=utf8_general_ci \
?? -DWITH_MYISAM_STORAGE_ENGINE=1 \
?? -DWITH_SPHINX_STORAGE_ENGINE=1 \
?? -DWITH_INNOBASE_STORAGE_ENGINE=1 \
?? -DWITH_MEMORY_STORAGE_ENGINE=1 \
?? -DWITH_READLINE=1 \
?? -DENABLED_LOCAL_INFILE=1 \
?? -DMYSQL_USER=mysql
5. make
6. make install
7. 配置文件
?? cp support-files/my-medium.cnf /etc/my.cnf
?? cp support-files/mysql.server /etc/init.d/mysqld
?? chmod 755 /etc/init.d/mysqld
8. 初始化數據庫
?? 如果出現這個錯誤[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
?? 是因為沒有指定數據文件位置.
?? ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/var/tmp/mysql/ &
9. 授權
?? chown -R mysql:mysql /usr/local/mysql/
?? chown -R mysql:mysql /var/tmp/mysql/
10. 啟動數據庫
?? service mysqld start
11. 設置到環境變量
?? vi /etc/profile
?? export PATH="$PATH:/usr/local/mysql/bin"
??
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h namenode password 'new-password'
12. mysql到此基本告一段落, 謝謝大家
[root@db001 lib]# /usr/local/sphinx/bin/indexer -all
/usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
ldconfig
1.
解壓sphinx源碼包:
$ tar xzvf sphinx-0.9.8.1.tar.gz
$ cd sphinx
2.
運行configure配置程序:
$ ./configure [options]
有一些參數可以在配置的時候指定,主要如下:
* –prefix, 指定sphinx 安裝到系統的那個位置; 例如 –prefix=/usr/local/sphinx
* –with-mysql, mysql的安裝目錄,指定如果自動偵查mysql的相關庫文件失敗后到哪個目錄查找
* –with-pgsql, 同上,只是用于pgsql的
完整的配置命令如下:./configure –prefix=/usr/local/sphinx –with-mysql=/usr/local/mysql
3. 編譯:
$ make
在這個步驟,可能遇到一個問題,就是報 sphinx undefined reference to ‘libiconv’ 的錯誤,解決辦法是修改 /src/MakeFile(注 意是src下的Makefile不是csft下的Makefile),編輯LIBS = -lm -lexpat 后面添加-liconv,即將該行該為:
LIBS = -lm -lexpat -liconv -L/usr/local/lib
4. 安裝
$ make install
如果編譯中沒有產生錯誤,這個步驟應該不會遇到問題。如果完成后未正確安裝,就要回去找make過程中遇到的錯誤了。
5. 運行測試
$ cd /usr/local/sphinx/etc
$ cp sphinx.conf.dist sphinx.conf
$ vi sphinx.conf
這里,sphinx提供了一個簡單的例子,基本步驟是先將/sphinx/etc下面的 sphinx.conf.dist重命名為sphinx.conf,然后修改sphinx.conf其中的配置,主要是修改你服務器上面的mysql的用戶名、密碼、使用的數據庫等。修改的位置是sphinx.conf的source src1下面幾行。
$ mysql -u test < /usr/local/sphinx/etc/example.sql
這里是導入sphinx準備的測試數據,我們把數據導入到mysql的test數據庫中。當然,這里的數據庫要和你上面的配置文件(sphinx.conf)中指定的sql_db值相同。注意,運行這個命令的話,如果你的mysql命令沒有加入到環境變量中,就需要用完整路徑,同時可能需要輸入密碼。比如你的mysql安裝在 /usr/local/mysql 目錄中,root賬戶的密碼是 xxxxxx ,那么命令應該調整為:
$ /usr/local/mysql/bin/mysql -uroot -pxxxxxx test < /usr/local/sphinx/etc/example.sql
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/indexer –all
這個命令是建立索引,當然數據基礎是剛剛導入的 example.sql的數據,如果這里出錯,最大的可能是你的sphinx.conf中的數據庫配置錯了,你需要回去檢查并修正。但是,還有可能出現 sphinx必須的庫文件無法找到,例如出現以下兩種錯誤:
/usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
/usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
這主要是因為你安裝了一些庫后,沒有能夠配置相應的環境變量。你可以通過建立連接的方式修正這個問題,運行如下命令:
ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
這里我假設你相應的軟件包安裝在/usr/local/xxx 目錄下,如果你不是安裝在相應目錄下,你就需要使用你自己的路徑。如果你沒有安裝libiconv軟件包,則需要安裝下,這個安裝比較簡單,就不多說了。
如果還出現類似錯誤,照上面的方法修正。
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/search test
上面的命令是搜索測試,測試的關鍵詞就是 test 了,如果成功的話,你應該看到搜到的結果,出現字串“index ‘test1′: query ‘test ‘: returned 3 matches of 3 total in 0.000 sec”,后面跟的是結果表示成功了。
$ cd /usr/local/sphinx/etc
$ /usr/local/sphinx/bin/searchd
運行上面的命令,你就啟動了sphinx進程了,如果沒什么錯誤,可以通過ps -aux|grep ‘3312′ 找到sphinx進程了。哈哈,大功告成!
總結
以上是生活随笔為你收集整理的Linux下Mysql5.5的Cmake安装以及sphinx结合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图匹配
- 下一篇: 数据库开发技术的课程记录