【MySQL】Incorrect file format のエラー対応
問題
以下のエラーで、MyISAMエンジンのテーブルを参照できません。
error: 130: Incorrect file format ‘some_table’
答え
まずはrepairを試す。
mysqlcheck --repair
mysqlcheck -r
だめなときにsafe-recoverを試す。
mysqlcheck --safe-recover
mysqlcheck -o
それでもおかしいようなら、
repqir を USE_FRM オプションをつけて実行。
repair table some_table USE_FRM;
ただし無傷で復旧するとは限らない。
テーブルは復旧しても、データが0件になっていたなどがありうるので、そのつもりで実行されたし。
参考
USE_FRM オプションは、.MYI インデックスファイルがない場合や、そのヘッダーが破損している場合に使用できます。このオプションは MySQL に、.MYI ファイルヘッダー内の情報を信頼せずに、.frm ファイルからの情報を使用してファイルヘッダーを再作成するよう指示します。この種類の修復は、myisamchk では実行できません。
コメント