テーブルの修復(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 /データベースのパス/テーブル名