原始碼編譯安裝可深度客製化 MySQL 功能模組。本文以 CentOS 6.7 64 位元為例,記錄 MySQL 5.7.11 依賴 cmake + Boost 編譯安裝全流程,含目錄規劃、參數配置、初始化、服務註冊與密碼重置。
# 下載源碼
wget https://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.11.tar.gz
wget https://cmake.org/files/v3.1/cmake-3.1.3.tar.gz
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# 建立用戶與目錄
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /app/local/{mysql,data}
mkdir /usr/local/boost
tar zxvf cmake-3.1.3.tar.gz
cd cmake-3.1.3
./configure && make && make install
tar zxvf boost_1_59_0.tar.gz
mv boost_1_59_0/* /usr/local/boost/
tar zxvf mysql-5.7.11.tar.gz
cd mysql-5.7.11
cmake \
-DCMAKE_INSTALL_PREFIX=/app/local/mysql \
-DMYSQL_DATADIR=/app/local/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
make && make install
# 權限設定
chown -R mysql:mysql /app/local/data
chown -R mysql:mysql /app/local/mysql
# 初始化(生成隨機密碼)
/app/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/app/local/mysql --datadir=/app/local/data
# 配置檔與啟動腳本
mv /etc/my.cnf /etc/my.cnf.bak
cp /app/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /app/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on
# 啟動服務
service mysqld start
# 使用隨機密碼登入並修改密碼
mysql -uroot -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
| 參數 | 用途 |
|---|---|
-DWITH_BOOST | 指定 Boost 庫路徑,5.7 編譯強制依賴 |
-DDOWNLOAD_BOOST=1 | 自動下載 Boost(需網路) |
-DDEFAULT_CHARSET | 預設字元集,建議 utf8/utf8mb4 |
-DWITH_*_STORAGE_ENGINE | 啟用特定儲存引擎 |
-DWITH_BOOST 路徑正確,或使用 -DDOWNLOAD_BOOST=1。datadir 權限、basedir 路徑、磁碟空間。/var/log/mysqld.log 或 datadir/*.err。ALTER USER,舊版用 SET PASSWORD 或 UPDATE mysql.user。原始碼編譯安裝雖步驟繁瑣,但能精確控制功能模組、優化編譯參數、適配特殊硬體架構。掌握 cmake 關鍵參數與 Boost 依賴處理,是 Linux 環境深度部署 MySQL 5.7 的核心技能。