1.1 安裝mysql-5.1.53
第一步:開啟終端,輸入命令mkdir -p/usr/local/eversec;在/usr/local/目錄下建立eversec檔案夾。
第二步:輸入命令cd /root/perseus2.0/db;進入/root/perseus2.0/db目錄。
第三步:輸入命令mkdir -p/usr/local/eversec/mysql,在/usr/local/eversec/目錄下建立mysql檔案夾;mkdir -p /usr/local/eversec/sphinx,在/usr/local/eversec/目錄下建立sphinx檔案夾。
第四步:輸入命令rpm-qa | grep mysql;查看是否以前有安裝mysql,如有安裝,則輸入命令rpm -e--nodeps mysql*來刪除mysql,如以前沒安裝,則繼續下一步。(注意:rpm -qa | grep mysql中的mysql最好大小寫都試一下,保證mysql資訊能全部查詢到)
第五步:輸入命令tar -zxvf mysql-5.1.53.tar.gz;解壓縮mysql源檔案mysql-5.1.53.tar.gz到目前的目錄。
第六步:輸入命令tar -zxvfsphinx-1.10-beta.tar.gz;解壓縮Sphinx源檔案sphinx-1.10-beta.tar.gz到目前的目錄。
第七步:輸入命令cd mysql-5.1.53;進入剛解壓得到的mysql-5.1.53目錄。
第八步:在MySQL源碼目錄中建立storage/sphinx目錄,並將Sphinx源碼目錄中的mysqlse目錄下的全部檔案拷貝到這個目錄。cp -R sphinx-1.10-beta/mysqlse/* mysql-5.1.53/storage/sphinx
第九步:在MySQL源碼目錄運行sh BUILD/autorun.sh
第十步:配置(configure)MySQL,啟用Sphinx引擎,編譯安裝MySQL
./configure --prefix=/usr/local/eversec/mysql--with-plugins=sphinx --with-partition
第十一步:輸入命令make;把mysql原檔案編譯成可執行檔。
第十二步:輸入命令make install;執行mysql的安裝檔案,完成安裝。
第十三步:進入sphinx-1.10-beta目錄,配置、編譯、安裝sphinx:
./configure--prefix=/usr/local/eversec/sphinx --with-mysql=/usr/local/eversec/mysql
第十四步:輸入命令make;把sphinx原檔案編譯成可執行檔。
第十五步:輸入命令make install;執行sphinx的安裝檔案,完成安裝。
第十六步:輸入命令cd ..;退出當前mysql-5.1.53目錄,返回db目錄。
第十七步:輸入命令rm -frmysql-5.1.53,sphinx-1.10-beta;把 mysql-5.1.53,sphinx-1.10-beta目錄及其子目錄的檔案全部刪除。
1.2 配置mysql-5.1.53
第一步:輸入命令groupaddmysql;添加mysql使用者組。
第二步:輸入命令useradd-g mysql mysql;給mysql使用者組添加使用者mysql。
第三步:輸入命令/usr/local/eversec/mysql/bin/mysql_install_db--user=mysql;建立資料庫mysql,使用者為mysql;
第四步:輸入命令cp/usr/local/eversec/mysql/share/mysql/my-huge.cnf /etc/my.cnf;把/usr/local/eversec/mysql/share/mysql/目錄下的my-huge.cnf檔案拷貝到/etc/目錄下,並重新命名為:my.cnf,使mysql將來以大資料量模式運行。(注意實際安裝時將資料庫目錄下的my.cnf拷貝到/etc目錄下,原因該檔案已做好安全配置)
第五步:輸入命令chgrpmysql /etc/my.cnf;將/etc/目錄下檔案名稱為my.cnf的組所有權更改為 mysql。
第六步:輸入命令chmod755 -R /usr/local/eversec/mysql/;把/usr/local/eversec/mysql/目錄及其子目錄下的全部檔案許可權改為所有人可讀、可執行,檔案擁有者還可寫。
第七步:輸入命令chownmysql.mysql -R /usr/local/eversec/mysql/;把/usr/local/eversec/mysql/目錄及其子目錄下的全部檔案的所用者改為mysql使用者組的mysql使用者。
第八步:輸入命令cp/usr/local/eversec/mysql/share/mysql/mysql.server /etc/init.d/mysqld;把/usr/local/eversec/mysql/share/mysql/目錄下的mysql.server檔案拷貝到/etc/init.d/目錄下,並重新命名為:mysqld。
第九步:輸入命令chkconfig--add mysqld;使系統新增mysqld服務
第十步:輸入命令chkconfig--level 345 mysqld on;設定mysqld服務在3,4,5運行級開啟。
第十一步:輸入命令servicemysqld start;啟動mysqld服務。
第十二步:輸入命令/usr/local/eversec/mysql/bin/mysqladmin-u root password '123456';將mysql的root使用者的密碼設為123456。
第十三步: 輸入命令ln -s/usr/local/eversec/mysql/bin/mysql /bin/mysql;給/usr/local/eversec/mysql/bin/目錄下的mysql檔案在/bin/目錄下建立連結mysql。
第十四步:vi/etc/ld.so.conf,然後寫入libmysqlclient.so.16儲存路徑
第十五步:運行ldconfig
注意:
1. 其中第十四、十五步可用以下命令,建立串連代替。
rm -f /usr/lib/libmysqlclient.so.16
ln -s/usr/local/eversec/mysql/lib/mysql/libmysqlclient.so.16/usr/lib/libmysqlclient.so.16
2. 啟動MYSQL時出現 Managerof pid-file quit without updating file.錯誤提示時,需要開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器,即可。
3. 查看mysql安裝是否成功查看記錄檔sfn.linux.com.err
tail -f /var/lib/mysql/sfn.linux.com.err
090820 03:51:07 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql
/usr/local/libexec/mysqld: Table'mysql.plugin' doesn't exist
090820 3:51:07 [ERROR] Can't open the mysql.plugin table. Please runmysql_upgrade to create it.
090820 3:51:07 [ERROR] Fatal error: Can't open and lock privilege tables: Table'mysql.host' doesn't exist
090820 03:51:07 mysqld_safe mysqld from pidfile /var/lib/mysql/sfn.linux.com.pid ended
090820 03:51:49 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql
/usr/local/libexec/mysqld: Table'mysql.plugin' doesn't exist
090820 3:51:50 [ERROR] Can't open the mysql.plugin table. Please runmysql_upgrade to create it.
090820 3:51:50 [ERROR] Fatal error: Can't open and lock privilege tables: Table'mysql.host' doesn't exist
090820 03:51:50 mysqld_safe mysqld from pidfile /var/lib/mysql/sfn.linux.com.pid ended
4. linux下編譯應用程式常常會出現如下錯誤:
/usr/bin/ld:cannot find -lxxx
意思是編譯過程找不到對應庫檔案。其中,-lxxx表示連結庫檔案 libxxx.so。
註:有時候,由於庫檔案是編譯過程臨時產生的,如果前面出錯也會導致出現這種情況,下面針對的是由於本機系統內容缺失而引起的。。
一般出現這種錯誤有以下幾種原因:
1.系統缺乏對應的庫檔案;
2.版本不對應;
3.庫檔案的連結錯誤;
4.庫檔案路徑設定問題;
對應第一第二種情況,可以通過下載安裝lib來解決,ubuntu大多數可以直接通過apt-get來安裝:
apt-getinstall libxxx-dev
一般遇到這種問題筆者第一時間也是會去檢查系統是否已安裝該lib或者是否已選擇正確版本(只是習慣問題),如果還是不能解決問題,那麼,引起錯誤的原因不是連結錯誤就是庫檔案路徑問題了。
通過find指令定位到連結檔案,查看連結檔案是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
如果是庫檔案路徑引發的問題,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf檔案,(可以自建conf,以方便識別)將lib所在目錄寫進去,然後在終端輸入 ldconfig 更新緩衝。
5. centos下安裝mysql時,提示curses/termcap庫沒裝
到configure這步時提示說Nocurses/termcap library found,
1.到網上下載這個庫http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz,同樣的需要解壓、configure、make。(./configure–with-named-curses-libs=/usr/lib/libncurses.so.5,指定目錄比較重要,這裡提供參考。)
2.另一種方法就是簡單的yum命令了,輸入yum installncurses-devel,自動完成。