下列程序適用於 MyISAM
資料表。如需關於遇到 InnoDB
資料表損毀時應採取的步驟的資訊,請參閱 第 1.6 節,「如何回報錯誤或問題」。
如果您遇到損毀的 MyISAM
資料表,或者如果 mysqld 在某些更新陳述式之後總是失敗,您可以執行以下操作來測試問題是否可重現
使用 mysqladmin shutdown 停止 MySQL 精靈。
建立資料表的備份,以防止修復執行錯誤的可能性極低的狀況。
使用 myisamchk -s database/*.MYI 檢查所有資料表。使用 myisamchk -r database/
資料表
.MYI 修復任何損毀的資料表。建立資料表的第二個備份。
如果需要更多空間,請從 MySQL 資料目錄中移除(或移開)任何舊的日誌檔案。
啟動已啟用二進位日誌的 mysqld。如果您想要找到導致 mysqld 崩潰的陳述式,您也應該啟動已啟用一般查詢日誌的伺服器。請參閱 第 7.4.3 節,「一般查詢日誌」,以及 第 7.4.4 節,「二進位日誌」。
當您取得崩潰的資料表時,請停止 mysqld 伺服器。
還原備份。
在未啟用二進位日誌的情況下重新啟動 mysqld 伺服器。
使用 mysqlbinlog 二進位日誌檔案 | mysql 重新執行陳述式。二進位日誌會儲存在名稱為
hostname-bin.
的 MySQL 資料庫目錄中。NNNNNN
如果資料表再次損毀,或者您可以使用上述命令讓 mysqld 停止運作,則您已發現可重現的錯誤。請依照 第 1.6 節,「如何回報錯誤或問題」中提供的指示,使用 FTP 將資料表和二進位日誌傳輸到我們的錯誤資料庫。如果您是支援客戶,可以使用 MySQL 客戶支援中心 (https://mysql.dev.org.tw/support/) 來通知 MySQL 團隊問題,並盡快修正。