生產環境 MySQL 5.5.x 就地升級至 5.6.x 的標準化操作手冊。採用「替換二進制、保留資料目錄、skip-grant-tables 免密啟動、mysql_upgrade 修正系統表、權限刷新」流程,適合獨立表空間架構,零資料遷移、停機時間僅需重啟耗時。
/data/mysql3306)innodb_file_per_table=1),共享表空間建議邏輯導出導入service mysqld stop
mv /usr/local/mysql /usr/local/mysql.bak
cp -ar /data/mysql3306 /data/mysql3306.bak
tar zxf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -s mysql-5.6.28-linux-glibc2.5-x86_64 mysql
cp -ar /usr/local/mysql.bak/my.cnf /usr/local/mysql/
編輯 /usr/local/mysql/my.cnf,在 [mysqld] 區段新增:
skip-grant-tables
啟動服務:
service mysqld start
mysql_upgrade -P3306 -u root -p'old_password'
# 輸出需確認所有表檢查為 OK,僅允許 warning
作用:
CHECK TABLE ... FOR UPGRADE)mysql 系統庫授權表結構(新增 password_expired、account_locked 等 5.6 新欄位)mysql -u root -p
# 提示符應顯示 5.6.28
mysql> FLUSH PRIVILEGES;
註解或刪除 my.cnf 中的 skip-grant-tables,重啟服務:
service mysqld restart
ERROR 等級異常SHOW VARIABLES LIKE 'version' 確認 5.6.x| 項目 | 說明 |
|---|---|
| 跨版本限制 | 不可跳級:5.1 → 5.5 → 5.6 → 5.7 → 8.0 必須逐版升級 |
| 共享表空間 | 建議 mysqldump 導出 → 新版導入,避免 ibdata1 結構不相容 |
| 參數相容 | 5.6 新增/廢棄參數需對照 my.cnf 清理,如 innodb_file_io_threads → read/write_io_threads |
| SQL_MODE | 5.6 預設 STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,應用需測試相容 |
| 字元集 | 建議統一 utf8mb4,升級前後保持一致 |