前置準備:卸載系統自帶舊版
yum remove mysql mysql-server mysql-libs
依賴工具鏈安裝
# CMake
wget https://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
tar xzf cmake-2.8.5.tar.gz && cd cmake-2.8.5
./bootstrap && make && make install
# 編譯器(報錯提示缺什麼裝什麼)
yum install -y gcc gcc-c++ ncurses-devel bison
MySQL 5.5.27 源碼編譯安裝
# 用戶與目錄
groupadd mysql && useradd -g mysql mysql
cd /usr/local
wget https://dev.mysql.com/Downloads/MySQL-5.5/mysql-5.5.27.tar.gz
tar xzf mysql-5.5.27.tar.gz && cd mysql-5.5.27
# CMake 配置(常用選項)
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
# 編譯安裝(視 CPU 核心數加 -jN 加速)
make -j4 && make install
初始化與權限設置
cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
服務管理配置
# 配置文件
cp support-files/my-medium.cnf /etc/my.cnf
# 啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
# 環境變量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
# 啟動驗證
service mysqld start
mysql -u root -p # 默認無密碼
常見編譯錯誤速查
| 錯誤信息 | 缺失依賴 | 解決命令 |
Cannot find appropriate C compiler | gcc | yum install gcc |
Cannot find appropriate C++ compiler | gcc-c++ | yum install gcc-c++ |
Curses library not found | ncurses-devel | yum install ncurses-devel |
Bison executable not found | bison | yum install bison |
⚠️ 避坑提醒
- CentOS 5.5 過老,生產環境建議升級至 7/8/Stream 或使用官方 RPM/二進制包
- 源碼編譯耗時長,生產建議預編譯二進制包或容器化部署
- MySQL 5.5 早已 EOL,新項目請用 8.0 LTS