MySQLでスキーマ情報に不整合が起こったら

MySQLで、こんなエラーが出て、にっちもさっちもいかなくなることがある。

テーブルを消そうとすると無いといわれ、作ろうとすると既に存在すると言われる。

dropしようとするとこうだ。

createしようとするとこうだ。

どうしろというのだ。

スキーマ情報に何か不整合が起こっているらしい。
このような状況は稀に発生するようだ。検索してみると、みんな四苦八苦して解消している模様。

で、私の環境でもこれが起こったわけだが、私の場合、テーブルファイルを物理削除することで対処した。
下記のような流れだ。

DB停止
-> テーブルファイルをOSコマンドで削除
-> DB起動
-> テーブル再作成

私の場合はWindows上でxamppを使っていたので、下記のような手順になった。

xamppコントロールパネルでMySQLを停止
-> エクスプローラで D:\xampp\mysql\data\(DBName) に行き、 TableName.frm と TableName.ibd を削除
※私の場合、frmファイルが最初から存在しなかった。それが不整合の原因なんだと思う。
-> xamppコントロールパネルでMySQLを起動
-> テーブルをバックアップから再作成

以上!

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください