まとまりのないブログ

something which something is something

mysql

Incorrect key file for table ‘./my/table.MYI’; try to repair it

投稿日:

MySQLのテーブルが壊れた。Incorrect keyとかCorruptとかエラーメッセージが出たのでrepairテーブルとかmyisamchkとか色々修復するべく試したがどうやっても直ってくれない。直ることは直るがデータをinsertしようとしたらまたエラーが出てその繰り返し。インデックスのキー位置と実際にテーブルに存在しているレコード数が一致していないのが原因の模様。実際にselect count(*) とかやって見た件数と修復時に表示される件数との間に差が生じているのを確認した。最後の手段として、

  1. show create table targetTable でテーブル定義をメモ
  2. 対象のテーブルデータを select * into outfile ‘/tmp/data.txt’ from targetTable として出力する。
  3. drop table targetTable としてテーブル削除
  4. create table targetTable (略 としてテーブルを再作成
  5. load data infile ‘/tmp/data.txt’ into table targetTable としてデータを流し込む

という手順でやってみて、流石にこれでもエラーが出るようならお手上げだと思っていたがなんとか復旧した。

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

mysqlのデータベースのテーブルから不要なフィールド(列)を削除

テーブルを再設計するために不要なフィールドを削除してみる。たしか前にフィールドを削除したときは、フィールドにインデックスが作成されている場合はフィールド削除の前にインデックスを削除しておかないとエラー …

no image

Client requested master to start replication from impossible position ( server_errno=1236)

mysqlのレプリケーションでのエラー。Client requested master to start replication from impossible position ( server_e …

no image

全文検索エンジンmroongaを使ってみた

sennaをビルドして使っていたのだけれど、レコード件数と速度に限界を感じてきていたのでその後継といわれるmroonga3.04を使ってみた。使ってみた感想は、mroongaストレージエンジンでの全文 …

no image

mysqlのレプリケーションでのエラー

[ERROR] Slave: Error ‘You have an error in your SQL syntax; check the manual that corresponds …

no image

mysqlのテーブルから不要なインデックスを削除する

テーブルを設計し直すために不要なインデックスを削除してみることにする。 mysql> drop index idx1 on ac200902; Query OK, 49398993 rows affe …