SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【MySQL】Incorrect file format のエラー対応

問題

以下のエラーで、MyISAMエンジンのテーブルを参照できません。

error: 130: Incorrect file format ‘some_table’ 

MySQL

答え

まずは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 では実行できません。

https://dev.mysql.com/doc/refman/5.6/ja/repair-table.html

関連するメモ

コメント