萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

CentOS 6 MySQL 5.1 升級 5.5 完整實戰筆記:備份、卸載、安裝、驗證

因 WordPress 4.2+ 要求 MySQL 5.5+,需將 CentOS 6 上的 MySQL 5.1 升級至 5.5。本文記錄生產環境無故障升級全流程:備份、停服務、清理舊包、配置 Remi 源安裝、升級系統表、驗證啟動。

一、升級前必備:完整備份


# 1. 備份所有資料庫 (含存儲過程、觸發器、事件)
mysqldump -u root -p --single-transaction --master-data=2 --routines --triggers --events --all-databases > /backup/mysql_full_$(date +%F).sql

# 2. 備份配置文件
cp /etc/my.cnf /etc/my.cnf.bak.$(date +%F)

# 3. 備份網站代碼目錄
tar czf /backup/web_$(date +%F).tar.gz /var/www/html

二、停止服務與清理舊版本


service mysqld stop
yum remove mysql mysql-server mysql-libs mysql-devel
# 檢查殘留
rpm -qa | grep -i mysql
# 若有殘留 (如 mysql-libs-5.1.x) 強制移除
yum remove mysql-libs

注意: 移除 mysql-libs 可能連帶移除依賴它的套件 (如 postfix、cronie),升級後重新安裝即可。

三、配置 Remi 源並安裝 MySQL 5.5


# 1. 安裝 EPEL & Remi 源 (CentOS 6 x86_64)
rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh https://rpms.famillecollet.com/enterprise/remi-release-6.rpm

# 2. 查看可用版本
yum --enablerepo=remi,remi-test info mysql mysql-server

# 3. 安裝 (remi 預設提供 5.5/5.6/5.7,此處安裝 5.5)
yum --enablerepo=remi install mysql mysql-server
# 若需指定 5.5:yum --enablerepo=remi install mysql55-mysql mysql55-mysql-server

四、配置檔遷移與調整

MySQL 5.5 配置參數與 5.1 大多相容,直接沿用舊 my.cnf 即可。重點檢查:

  • innodb_buffer_pool_size 依記憶體調整 (建議 50-70%)
  • innodb_file_per_table = ON
  • max_connections 視應用並發調整
  • 移除 5.1 專屬廢棄參數 (如 skip-locking)

五、啟動與系統表升級 (關鍵步驟)


service mysqld start
# 首次啟動會自動建立系統表,隨後必須執行升級腳本
mysql_upgrade -u root -p
# 輸入 root 密碼,腳本會檢查/修復所有表、重建權限表、刷新權限

若報錯「Table 'mysql.proc' doesn't exist」:說明系統表未建立完全,重新執行 mysql_install_db --user=mysql 後再跑 mysql_upgrade。

六、驗證升級成功


mysql -V
# mysql  Ver 14.14 Distrib 5.5.xx, for Linux (x86_64) using readline 5.1

mysql -u root -p -e "SELECT VERSION();"
# 5.5.xx-log

# 測試 WordPress 連線
cd /var/www/html && php -r "require 'wp-load.php'; echo 'WP DB Version: ' . \$wpdb->db_version();"

七、常見問題排查

八、回滾方案 (升級失敗時)


# 1. 停止新版
service mysqld stop
# 2. 移除 5.5 包
yum remove mysql mysql-server
# 3. 重裝 5.1 (從備份恢復或原版源安裝)
yum install mysql mysql-server
# 4. 恢復資料
mysql -u root -p < /backup/mysql_full_2024-01-15.sql
# 5. 恢復配置
cp /etc/my.cnf.bak.2024-01-15 /etc/my.cnf
service mysqld start

升級完成後,建議觀察 24-48 小時,重點監控慢查詢、錯誤日誌、連線數、QPS/TPS 指標,確認業務穩定。

copyright © 萬盛學電腦網 all rights reserved
現象原因解決
啟動失敗 InnoDB: Error: log file size mismatch舊 ib_logfile 殘留停服務,移除 /var/lib/mysql/ib_logfile* 重啟
PHP 連線報 mysqlnd cannot connect to MySQL 4.1+ using old authentication密碼雜湊格式舊版UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root'; FLUSH PRIVILEGES;
中文亂碼字符集配置遺失確認 my.cnf 含 character-set-server=utf8mb4,連線執行 SET NAMES utf8mb4