首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL 啟動錯誤:InnoDB log file size mismatch

     編輯:MySQL 資料庫相關知識

錯誤現象

修改 innodb_log_file_size 後啟動 MySQL 失敗,錯誤日誌顯示:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes

原因:磁碟上現有 Redo Log 檔案大小與配置文件新設定不一致,InnoDB 拒絕啟動以防資料損壞。

標準修復流程

  1. 備份現有 Log 檔案 (保險起見)
    mkdir /backup/ib_log_$(date +%F)
    mv /var/lib/mysql/ib_logfile* /backup/ib_log_$(date +%F)/
  2. 刪除原檔案 (或移動至備份目錄)
  3. 重啟 MySQL
    systemctl restart mysqld
  4. 驗證:新的 ib_logfile0, ib_logfile1 依配置大小自動建立。

範例:my-innodb-heavy-4G.cnf

innodb_log_file_size = 256M
innodb_log_files_in_group = 2

重啟後將看到兩個 268435456 bytes (256MB) 的 log 檔案。

注意事項

  • 務必先**正常關閉** MySQL (systemctl stop mysqld),確保 Redo Log 已 Checkpoint、無未刷盤事務。
  • 若資料極重要,備份整個 datadir 後再操作。
  • 修改 innodb_log_file_size 需同時考慮 innodb_log_files_in_group 總大小不超過 Buffer Pool 25%。
  • Galera Cluster / 主從架構需逐節點滾動重啟,避免同步中斷。

避坑指南

切勿直接修改配置後強行啟動,必須移除舊 log 檔案。若誤刪 ibdata1 (系統表空間) 將導致資料庫不可用,需從備份恢復。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved