0

テーブルを含む行方不明の mysql db を回復しており、frm ファイルと ibdata1 があります。

私は innodb_file_per_table を使用して、各 DB に独自のデータ ファイルを作成しました。テストでは、新しい DB が作成時にこのシステムを使用するようになりました。

新しくインポートされた frms とデータを表示したり、それらに対して SQL を記述したりすると、それらが見つからないことに気付きました。いくつかの「ビュー」が利用可能ですが、テーブルはありません。

check table sometablename を実行すると、テーブルが存在しないことがわかります。同じ名前のテーブルを作成しようとすると、テーブルが既に存在します。

MYSQL サービスを数回停止して開始しましたが、新しい frm が取得されることを期待していましたが、何もありませんでした。

何か案が?

4

1 に答える 1

2

データベース ディレクトリの内容をロードするだけでは、データベースを復元することはできません。InnoDB は、メインの MySQL データ ディレクトリにあるいくつかのマスター ファイルに他の情報を格納します。

すべてのデータを回復する唯一の信頼できる方法はmysqldump、復元手順を使用するか、MySQL データ ディレクトリの内容全体FLUSH WITH WRITE LOCKをコピーする前に行うことです。この方法は、この操作中にデータベース全体がロックされるため、本番システムにはお勧めできません。

于 2012-11-05T20:08:41.693 に答える