回答:
データベースは削除できません。
問題はテーブルが破損していることです。必ずしも.ibd
ファイルである必要はありません。おそらく、ibdata1内のデータディクショナリエントリです(ibdata1の図解を参照)。
私はこれについて書き戻しましたMar 02, 2012
:InnoDBテーブルSELECTがエラー2006(HY000)を返します:MySQLサーバーが停止しました(停電後)
退屈ですが、壊れたデータベースに他のテーブルを保存する方法は次のbad_db
とおりです。
ステップ01) USE bad_db
ステップ02)のSELECT COUNT(1) FROM tablename;
すべてのテーブルに対して実行しますbad_db
。カウントを実行しようとしたときにmysqldをクラッシュさせないすべてのテーブル名を収集します。
ステップ03)mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
mysqldをクラッシュさせなかったすべてのテーブルに対して実行します。
別のデータベース名を使用する場合は、bad_db_goodtables.sql
その新しいデータベースにリロードしてください。
データベースを同じ名前にする必要がある場合は、悪いニュース!!! ibdata1をオーバーホールします。さらにステップがあります:
ステップ04)mysqldumpは他のすべてのデータベースを個別のダンプファイルにダンプします
ステップ05)InnoDBインフラストラクチャのクリーンアップを実行します(私のOct 29, 2010
StackOverflowポストを参照)
ステップ06)他のすべてのmysqldumpsの適切なデータベースをリロードします。
試してみる !!!