以下一般準則適用於疑難排解 InnoDB
問題
當操作失敗或您懷疑有錯誤時,請查看 MySQL 伺服器錯誤日誌(請參閱第 7.4.2 節,「錯誤日誌」)。伺服器錯誤訊息參考提供您可能遇到的一些常見
InnoDB
特定錯誤的疑難排解資訊。如果失敗與死結相關,請啟用
innodb_print_all_deadlocks
選項執行,以便將每個死結的詳細資訊列印到 MySQL 伺服器錯誤日誌。有關死結的資訊,請參閱第 17.7.5 節,「InnoDB 中的死結」。如果問題與
InnoDB
資料字典相關,請參閱第 17.20.4 節,「疑難排解 InnoDB 資料字典操作」。在疑難排解時,通常最好從命令提示字元執行 MySQL 伺服器,而不是透過 mysqld_safe 或作為 Windows 服務。然後,您可以查看 mysqld 列印到主控台的內容,以便更好地掌握正在發生的情況。在 Windows 上,使用
--console
選項啟動 mysqld,將輸出導向主控台視窗。啟用
InnoDB
監控器以取得有關問題的資訊(請參閱第 17.17 節,「InnoDB 監控器」)。如果問題與效能相關,或您的伺服器似乎已掛起,您應啟用標準監控器以列印有關InnoDB
內部狀態的資訊。如果問題與鎖定有關,請啟用鎖定監控器。如果問題與資料表建立、資料表空間或資料字典操作有關,請參考 InnoDB 資訊綱要系統資料表,以檢查InnoDB
內部資料字典的內容。InnoDB
在以下情況下暫時啟用標準InnoDB
監控器輸出長時間的號誌等待
InnoDB
無法在緩衝池中找到空閒區塊超過 67% 的緩衝池被鎖定堆積或自適應雜湊索引佔用
如果您懷疑資料表已損壞,請在該資料表上執行
CHECK TABLE
。