雖然 5.0 版本已停止維護,但源碼編譯安裝流程具有通用參考價值。記錄在 CentOS 6.x 環境下編譯安裝 MySQL 5.0.45 的完整步驟、參數說明、服務註冊、環境變數配置。
# 系統:CentOS 6.x / RHEL 6.x
# 建立使用者
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 建立目錄
mkdir -p /usr/local/mysql
mkdir -p /usr/local/mysql/var
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/var
cd /usr/local/software
wget https://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261.0.0.html
tar -zxvf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure \
--prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-collation=utf8_general_ci \
--with-extra-charsets=all \
--with-plugins=innobase,archive,blackhole \
--enable-thread-safe-client \
--enable-local-infile
| 參數 | 說明 |
|---|---|
| --prefix | 安裝根目錄 |
| --with-charset | 預設字符集 |
| --with-collation | 預設校對規則 |
| --with-extra-charsets | 額外支援字符集,all=全部 |
| --with-plugins | 靜態編譯儲存引擎插件 |
make
make install
cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf
# 註釋 log-bin=mysql-bin (關閉 Binlog,若非主從)
# 設定 basedir、datadir、port、server_id 等
cd /usr/local/mysql
bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var
bin/mysqld_safe --user=mysql &
# 或
/usr/local/mysql/bin/mysqld --user=mysql --datadir=/usr/local/mysql/var &
bin/mysqladmin -u root password '123456'
bin/mysql -u root -p
# 輸入 123456
SHOW DATABASES; # 驗證成功
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
# 管理命令
service mysqld start|stop|restart|status
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 或系統級
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
service iptables stop
vi /etc/sysconfig/iptables
# 加入:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables start
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
mysql -V
mysql -u root -p -e "SELECT VERSION(); SHOW VARIABLES LIKE 'char%';"
ps -ef | grep mysql
| 項目 | 5.0.45 | 5.7+ |
|---|---|---|
| 初始化 | mysql_install_db | mysqld --initialize |
| 密碼 | 預設空密碼 | 隨機初始密碼 |
| 字符集 | utf8 (3 字節) | utf8mb4 (4 字節) |
| GIS | 無 | 原生支援 |
| JSON | 無 | 原生支援 |
| GTID | 無 | 原生支援 |
| 線上 DDL | 無 | 支援 |
源碼編譯雖繁瑣,但能深度理解 MySQL 依賴關係、編譯選項對效能的影響、目錄佈局,適合學習與極致定製場景。生產環境建議使用官方 RPM/DEB 或 Percona 分支。