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