テーブルの修復(myisamchk)

MySQLのテーブルが破損した場合、次のコマンドで確認することが出来ます。

$ myisamchk /データベースのパス/*.MYI

例えばエラーがある場合、次のように表示されます。

myisamchk: error: Checksum for key:  1 doesn't match checksum for records

時間はかかりますが、より詳細にチェックしてくれる-eオプションもあります。

$ myisamchk -e /データベースのパス/*.MYI

修復

エラーが発見された場合、次のコマンドで修復します。

$ myisamchk -r -q /データベースのパス/テーブル名

-pオプションを指定することでデータファイルには触れないでインデックスファイル の修復を試みます。

上記例で修復できない場合、-rオプションのみで修復を試みます。念のため修復 の前にデータファイルをバックアップします。

$ myisamchk -r /データベースのパス/テーブル名

-rオプションでも修復できない場合、-oオプションで修復を試みます。

$ myisamchk -o /データベースのパス/テーブル名