一、編譯安裝MySQL前的準備工作
安裝編譯源碼所需的工具和庫
yum?install?gcc?gcc-c++?ncurses-devel?perl
安裝cmake,從http://www.cmake.org下載源碼并編譯安裝
wget?http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar?-xzvf?cmake-2.8.10.2.tar.gz
cd?cmake-2.8.10.2
./bootstrap?;?make?;?make?install
cd?~
二、設置MySQL用戶和組
新增mysql用戶組
groupadd?mysql
新增mysql用戶
useradd?-r?-g?mysql?mysql
三、新建MySQL所需要的目錄
新建mysql安裝目錄
mkdir?-p?/usr/local/mysql
新建mysql數據庫數據文件目錄
mkdir?-p?/data/mysqldb
四、下載MySQL源碼包并解壓
從http://dev.mysql.com/downloads/mysql/直接下載源碼,解壓mysql-5.6.16.tar.gz(http://www.quseqi.com/這個網站就是用的5.6.16版本)
wget?http://www.kakapart.com/files/mysql-5.6.16.tar.gz
tar?-zxv?-f?mysql-5.6.16.tar.gz
cd?mysql-5.6.16
五、編譯安裝MySQL
從mysql5.5起,mysql源碼安裝開始使用cmake了,設置源碼編譯配置腳本。
設置編譯參數
cmake?\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql?\
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock?\
-DDEFAULT_CHARSET=utf8?\
-DDEFAULT_COLLATION=utf8_general_ci?\
-DWITH_INNOBASE_STORAGE_ENGINE=1?\
-DWITH_ARCHIVE_STORAGE_ENGINE=1?\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1?\
-DMYSQL_DATADIR=/data/mysqldb?\
-DMYSQL_TCP_PORT=3306?\
-DENABLE_DOWNLOADS=1
-DCMAKE_INSTALL_PREFIX=dir_name
設置mysql安裝目錄
-DMYSQL_UNIX_ADDR=file_name
設置監聽套接字路徑,這必須是一個絕對路徑名。默認為/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name
設置服務器的字符集。
缺省情況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_sets.cmake文件包含允許的字符集名稱列表。
-DDEFAULT_COLLATION=collation_name
設置服務器的排序規則。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存儲引擎選項:
MyISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,并不需要明確地安裝。
靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name
設置mysql數據庫文件目錄
-DMYSQL_TCP_PORT=port_num
設置mysql服務器監聽端口,默認為3306
-DENABLE_DOWNLOADS=bool
是否要下載可選的文件。例如,啟用此選項(設置為1),cmake將下載谷歌所使用的測試套件運行單元測試。
[]PS: MySQL5.5以上版本ssl編譯參數與5.1不同
5.5版本
time cmake? -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5551 ? -DMYSQL_DATADIR=/data5551 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/data5551/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_SSL=yes
注:重新運行配置,需要刪除CMakeCache.txt文件
rm?CMakeCache.txt
編譯源碼
make
安裝
make?install
六、修改mysql目錄所有者和組
修改mysql安裝目錄
cd?/usr/local/mysql
chown?-R?mysql:mysql?.
修改mysql數據庫文件目錄
cd?/data/mysqldb
chown?-R?mysql:mysql?.
七、初始化mysql數據庫
cd?/usr/local/mysql
scripts/mysql_install_db?--user=mysql?--datadir=/data/mysqldb
八、復制mysql服務啟動配置文件
cp?/usr/local/mysql/support-files/my-default.cnf?/etc/my.cnf
注:如果/etc/my.cnf文件存在,則覆蓋。
九、復制mysql服務啟動腳本及加入PATH路徑
cp?support-files/mysql.server?/etc/init.d/mysqld
vim?/etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export?PATH
source?/etc/profile
十、啟動mysql服務并加入開機自啟動(可選這個步驟,以后可以自己啟動的)
service?mysqld?start
chkconfig?--level?35?mysqld?on
十一、檢查mysql服務是否啟動
netstat?-tulnp?|?grep?3306
mysql?-u?root?-p
密碼為空,如果能登陸上,則安裝成功。
十二、修改MySQL用戶root的密碼
mysqladmin?-u?root?password?'123456'
注:也可運行安全設置腳本,修改MySQL用戶root的密碼,同時可禁止root遠程連接,移除test數據庫和匿名用戶。
/usr/local/mysql/bin/mysql_secure_installation
十三、可能會出現的錯誤
問題:
Starting?MySQL..The?server?quit?without?updating?PID?file?([FAILED]/mysql/Server03.mylinux.com.pid).
解決:
修改/etc/my.cnf?中datadir,指向正確的mysql數據庫文件目錄
問題:
ERROR?2002?(HY000):?Can't?connect?to?local?MySQL?server?through?socket?'/tmp/mysql.sock'?(2)
解決:
新建一個鏈接或在mysql中加入-S參數,直接指出mysql.sock位置。
ln?-s?/usr/local/mysql/data/mysql.sock?/tmp/mysql.sock
/usr/local/mysql/bin/mysql?-u?root?-S?/usr/local/mysql/data/mysql.sock
MySQL問題解決:-bash:mysql:command?not?found
因為mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,
系統在/usr/bin下面查此命令,所以找不到了
解決辦法是:
ln?-s?/usr/local/mysql/bin/mysql?/usr/bin 做個鏈接即可