以下一般準則適用於疑難排解 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
。