1

データベース (すべての MyISAM テーブル) を取得しましたが、MySQL が実行されていたマシンは起動できなくなりました。ただし、データ ディレクトリのすべての MySQL データ ファイルがあります。MYD ファイルや FRM ファイル、またはデータ ディレクトリ内のその他のファイルからデータを復元するにはどうすればよいですか?

私はこれについていくつかの検索を行ってきましたが、MyISAM の場合、データベースのサブディレクトリを古い MySQL データ ディレクトリから新しい MySQL データ ディレクトリにコピーするだけでよいようです。しかし、それは私にとってはうまくいきません。回復しようとしているデータベースの名前のデータベースが phpMyAdmin のデータベースのリストに表示されますが、すべてのテーブルが「使用中」と表示され、情報 (行数、バイト数、列情報など) がありません。など)。これらのテーブルに対する操作 (例: SELECT * FROM {table}、REPAIR {table}、CHECK {table}) は、「no such table」エラーを返します。

検索で出くわしたツールの 1 つは、MicroOLAP の DBACentral です。FRM/MYD ファイルからデータを復元するはずのコンポーネントがありますが、実行しようとすると、FRM/MYD ファイルから復元できるテーブルが一覧表示されませんでした。

これは、Vista Business 32 ビットを実行している開発者ワークステーションにあります。MySQL のバージョンは 5.0.27 です。マシンを修正した後、まったく同じバージョンの MySQL (v5.0.27) を入手しました。バイナリ データ ファイルをドロップするだけなら、同じバージョンの MySQL を使用する必要があると考えました。それでもうまくいきませんでした。

どんな洞察も大歓迎です...ありがとう!

-ジョシュ

4

2 に答える 2

2
  1. 同じバージョンの mysql をインストールします。
  2. サーバーのデータ ディレクトリから mysql ディレクトリを削除し、クラッシュしたサーバーからコピーします。これが重要な要素です
  3. 回復したいデータベースのディレクトリを新しいサーバーのデータディレクトリにコピーします
  4. mysqlを起動します。
  5. mysqlデータベースに切り替えて、すべてのテーブルUSE mysql;で実行します。REPAIR TABLE <table name>
  6. 回復したいデータベースで同じことを行います

ヒント: 2 つのディレクトリがデータ ディレクトリのように同じ権限を持っていることを確認してください

mysqlデータベース (古いサーバーのデータ ディレクトリに mysql ディレクトリ) を保存しなかった場合は、次のことを試すことができます。

  1. 回復したいデータベースと同じ名前でデータベースを作成します。
  2. 次に、各テーブルを作成できます (同じ構造を使用することをお勧めします。回復の可能性が高くなります)。
  3. 次に、mysqlサーバーを停止し、データベースディレクトリからファイルを削除し、古いサーバーのファイルで上書きします
  4. mysql を起動し、各テーブルを修復します。
于 2011-04-17T15:07:10.370 に答える
0

私はあきらめてしまいました。答えは、私の特定のバージョンのMySQLでは、これは機能しないということだと思います。それ以来、状況が改善されたことを願っています。

于 2012-10-23T20:22:23.430 に答える