mysql-5.5.8.tar.gzcmake、gcc/g++、make、perl、libncurses5-dev、bison、chkconfigsudo apt-get update
sudo apt-get install cmake build-essential libncurses5-dev bison chkconfig
關鍵點:缺 libncurses5-dev 會報 Curses library not found;bison 缺失僅警告但建議裝上。
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
| 參數 | 作用 | 建議值 |
|---|---|---|
| CMAKE_INSTALL_PREFIX | 安裝根目錄 | /usr/local/mysql |
| MYSQL_DATADIR | 數據文件目錄 | 獨立磁盤分區 |
| DEFAULT_CHARSET | 默認字符集 | utf8 / utf8mb4 |
| DEFAULT_COLLATION | 默認校對集 | utf8_general_ci |
| WITH_*_STORAGE_ENGINE | 靜態編譯存儲引擎 | 按需開啟 |
# 1. 解壓
tar zxvf mysql-5.5.8.tar.gz
cd mysql-5.5.8
# 2. cmake 配置(上述參數一行執行)
cmake [參數...]
# 3. 編譯安裝(約 20 分鐘)
make -j$(nproc)
sudo make install
# 1. 初始化系統表
cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql
# 2. 配置文件
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf [mysqld] 區塊添加:
character-set-server = utf8
# 3. 服務腳本
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 修改 basedir/datadir 後:
sudo service mysqld start
# 4. 開機自啟
sudo chkconfig --level 3 mysqld on
# 5. 命令軟鏈
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/
sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
編譯指定 DEFAULT_CHARSET=utf8 後,character_set_server 仍可能為 latin1。必須在 /etc/my.cnf 的 [mysqld] 區塊顯式添加:
character-set-server = utf8
重啟後驗證:
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_server | utf8 |
| character_set_database | utf8 |
| ... | ... |
+--------------------------+----------------------------+
default-character-set:會報 unknown variable 導致啟動失敗chown -R mysql:mysql /home/mysql/data 必須在啟動前完成源碼編譯雖耗時,但可精準控制功能模組、優化參數,適合對效能有極致要求的生產環境。