本文記錄在 CentOS 5.5 環境下,從原始碼編譯安裝 MySQL 5.5.37 的完整流程,包含依賴處理、常見錯誤排除、服務註冊與驗證步驟,供同類環境部署參考。
MySQL 5.5+ 版本採用 CMake 取代傳統 configure 進行編譯配置。
# 下載並安裝 CMake 2.8.12.2
wget https://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar xvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./bootstrap
make
make install
# 取得原始碼
wget https://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz
tar xvf mysql-5.5.37.tar.gz
cd mysql-5.5.37
# 執行 CMake 配置
cmake .
若出現 Curses library not found 錯誤,需安裝 ncurses:
# 安裝 ncurses 5.9
wget https://invisible-island.net/datafiles/release/ncurses.tar.gz
tar xvf ncurses.tar.gz
cd ncurses-5.9
./configure
make
make install
# 關鍵步驟:刪除 CMake 快取重新配置
rm -f CMakeCache.txt
cmake .
make
make install
預設安裝路徑:/usr/local/mysql
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe --user=mysql &
# 1. 複製配置檔
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# 2. 註冊啟動腳本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
/sbin/chkconfig --add mysql
# 3. 啟動服務
service mysql start
/usr/local/mysql/bin/mysql -u root -p
# 輸入密碼 (初始無密碼,直接 Enter)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
| 問題 | 原因 | 解決方案 |
|---|---|---|
| CMake 報 Curses 錯誤 | 缺 ncurses-devel | 源碼編譯安裝 ncurses,刪除 CMakeCache.txt 重試 |
| mysqld_safe 找不到 my_print_defaults | 未執行 mysql_install_db | 執行初始化腳本指定 basedir/datadir |
| 權限錯誤 | 目錄擁有者非 mysql 用戶 | chown -R mysql.mysql /usr/local/mysql |
MySQL 5.6+ 同樣需要 CMake,編譯參數可能不同,建議參考官方文檔 cmake . -LH 查看可用選項。生產環境優先考慮官方 RPM/DEB 套件或 Docker 部署,僅在特殊定制需求時採用源碼編譯。