請注意,在啟動啟用一般查詢日誌的 mysqld 之前,您應該使用 myisamchk 檢查所有表格。請參閱第 7 章,MySQL 伺服器管理。
如果 mysqld 停止運作或停滯,您應該啟動啟用一般查詢日誌的 mysqld。請參閱第 7.4.3 節,「一般查詢日誌」。當 mysqld 再次停止運作時,您可以檢查日誌檔的結尾,以找出導致 mysqld 停止運作的查詢。
如果您使用預設的一般查詢日誌檔,則日誌會儲存在資料庫目錄中,名稱為 。在大多數情況下,導致 mysqld 停止運作的是日誌檔中的最後一個查詢,但如果可以,您應該重新啟動 mysqld 並從 mysql 命令列工具執行找到的查詢,藉此驗證此情況。如果這可以運作,您也應該測試所有未完成的複雜查詢。主機名稱.log
您也可以嘗試在所有需要長時間執行的 SELECT 陳述式上使用 EXPLAIN 命令,以確保 mysqld 正確地使用索引。請參閱第 15.8.2 節,「EXPLAIN 陳述式」。
您可以藉由啟動啟用慢速查詢日誌的 mysqld,找出需要長時間執行的查詢。請參閱第 7.4.5 節,「慢速查詢日誌」。
如果您在錯誤日誌 (通常是名為 的檔案) 中找到文字 主機名稱.errmysqld restarted,您可能已找到導致 mysqld 失敗的查詢。如果發生這種情況,您應該使用 myisamchk 檢查所有表格 (請參閱第 7 章,MySQL 伺服器管理),並測試 MySQL 日誌檔案中的查詢,以查看是否有任何查詢失敗。如果您發現這類查詢,請先嘗試升級到最新的 MySQL 版本。如果這沒有幫助,請回報錯誤,請參閱第 1.6 節,「如何回報錯誤或問題」。
如果您在啟動 mysqld 時設定了 myisam_recover_options 系統變數,MySQL 會自動檢查並嘗試修復標記為「未正確關閉」或「崩潰」的 MyISAM 表格。如果發生這種情況,MySQL 會在 hostname.err 檔案中寫入一條項目 'Warning: Checking table ...',如果表格需要修復,則接著會寫入 Warning: Repairing table。如果沒有 mysqld 在之前意外終止的情況下,您收到很多這些錯誤,那麼就表示有些問題需要進一步調查。請參閱第 7.1.7 節,伺服器命令選項。
當伺服器偵測到 MyISAM 表格損壞時,它會將額外的資訊寫入錯誤日誌,例如來源檔案的名稱和行號,以及存取表格的執行緒列表。範例:Got an error from thread_id=1, mi_dynrec.c:368。這是在錯誤報告中包含的有用資訊。
如果 mysqld 意外終止,這並不是一個好兆頭,但在這種情況下,您不應該調查 Checking table... 訊息,而是應該試著找出 mysqld 終止的原因。