因業務需分區功能(MySQL 5.5+ 支援),需將 CentOS 6.3 上的 MySQL 5.1.61 升級至 5.6.19。YUM 源版本過舊,採用官網 RPM 包離線升級,過程中踩過以下坑:
| 現象 | 原因 | 解決 |
|---|---|---|
安裝 MySQL-server RPM 衝突 mysql-libs-5.1.61 | 舊版共享庫佔用文件 | rpm -e --nodeps mysql-libs-5.1.61 移除舊庫 |
啟動失敗:Can't connect to local MySQL server through socket | /var/run/mysql 目錄不存在 | mkdir -p /var/run/mysql && chown mysql:mysql /var/run/mysql |
| 未知 root 密碼 | 全新安裝無初始密碼 | 以 mysqld_safe --skip-grant-tables 啟動,修改密碼 |
| 導入數據報編碼錯誤 | 字符集不匹配 | 導入時指定 --default-character-set=utf8 |
安裝 php-mysql 又需 mysql-libs 衝突 | 新版 server 未提供兼容庫 | 安裝 MySQL-shared-compat-5.6.19 解決依賴 |
mysqldump --all-databases --single-transaction --master-data=2 > backup.sqlrpm -qa | grep -i mysql | xargs rpm -e --nodepsshared-compat → client → server → develmysql_install_db --user=mysql --datadir=/var/lib/mysqlmysql_upgrade -uroot -p 更新系統表記錄不夠詳盡係因當時情況緊急,後續升級務必完整記錄錯誤日誌與操作步驟,便於複盤與自動化。