雖然 YUM/APT/RPM 安裝便捷,但源碼編譯能:自定義安裝路徑、精簡模組(僅啟用需求的存儲引擎)、優化編譯參數(如 -march=native)、掌握完整部署細節以便故障排查。本文記錄 CentOS 6/7 上 MySQL 5.6.24 完整編譯安裝流程,含常見報錯解決。
# 1. 編譯工具鏈與依賴庫
yum install -y gcc gcc-c++ make cmake ncurses-devel bison openssl-devel
# 2. 建立 mysql 用戶/組
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
# 3. 目錄規劃
mkdir -p /home/mysql/data
chown -R mysql:mysql /home/mysql
cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.24.tar.gz
tar zxf mysql-5.6.24.tar.gz
cd mysql-5.6.24
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-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 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system
參數重點:
CMAKE_INSTALL_PREFIX:安裝根目錄,所有二進制、庫、腳本均在此下。MYSQL_DATADIR:資料目錄,初始化後不可輕易變更。WITH_SSL=system:使用系統 OpenSSL,避免捆綁 yaSSL 的授權限制。EXAMPLE, FEDERATED)預設不啟用,減小體積。make -j$(nproc) # 並行編譯,加速
make install
mysql_install_db)cd /home/mysql
scripts/mysql_install_db --user=mysql --datadir=/home/mysql/data --basedir=/home/mysql
輸出末尾會顯示 root@localhost 的隨機密碼(5.6 無隨機密碼,root 無密碼),請記錄。
# 1. 複製啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
# 2. 建立 my.cnf(僅保留核心配置)
cat > /etc/my.cnf <<'EOF'
[mysqld]
basedir=/home/mysql
datadir=/home/mysql/data
socket=/home/mysql/mysql.sock
port=3306
user=mysql
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log-error=/home/mysql/data/error.log
pid-file=/home/mysql/data/mysql.pid
EOF
# 3. 權限修正
chown -R mysql:mysql /home/mysql
service mysqld start
netstat -anp | grep 3306
/home/mysql/bin/mysql -uroot -p # 按提示輸入密碼(初始為空)
| 錯誤 | 原因 | 解決 |
|---|---|---|
Curses library not found | 缺 ncurses-devel | yum install ncurses-devel && rm CMakeCache.txt && 重新 cmake |
Bison executable not found | 缺 bison | yum install bison |
Permission denied 執行 mysql_install_db | 腳本無執行權限 | chmod +x scripts/mysql_install_db |
啟動報 PID file not found | datadir 權限錯誤、或殘留進程 | chown -R mysql:mysql /home/mysql/data;pkill mysqld 後重試 |
Can't connect to local MySQL server through socket | socket 路徑不一致 | 統一 my.cnf、mysql.server、客戶端 --socket 參數 |
/home/mysql/bin/mysql_secure_installation
# 依提示:設 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重新載入權限
echo 'export PATH=/home/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
chkconfig mysqld on
至此,MySQL 5.6.24 源碼編譯安裝完成。生產環境建議再根據負載調整 innodb_buffer_pool_size、innodb_log_file_size、max_connections 等核心參數,並建立監控告警體系。