155

物理データベース ファイルから MySQL データベースを復元することは可能ですか。次のファイル タイプを持つディレクトリがあります。

client.frm
client.MYD
client.MYI

しかし、さらに約20のテーブルがあります。

私は通常、mysqldump または同様のツールを使用してすべてを 1 つの SQL ファイルにまとめていますが、これらの種類のファイルを処理するにはどうすればよいでしょうか?

4

11 に答える 11

143

MySQL MyISAM テーブルは、次の 3 つのファイルの組み合わせです。

  • FRM ファイルはテーブル定義です。
  • MYD ファイルは、実際のデータが保存される場所です。
  • MYI ファイルは、テーブルで作成されたインデックスが格納される場所です。

それらをデータベースフォルダーにコピーすることで復元できるはずです(Linuxでは、デフォルトの場所は です/var/lib/mysql/

サーバーが実行されていないときに実行する必要があります。

于 2009-01-27T19:09:40.923 に答える
12

同じ問題がありますが、上記の手順に基づいてデータベースを正常に回復できませんでした。

Ubuntu OS からは mysql データベース フォルダーしか復元できませんでした。私の問題は、これらの読み取り不能な mysql データ フォルダーを使用してデータベースを回復する方法です。そこで、開発環境をwin7 OSに戻しました。

*注: 既存のデータベース サーバーが win7 で実行されており、復元されたファイルから取得するデータベース ファイルはほとんど必要ありません。Ubuntu OS からデータベース ファイルを正常に復元するには、mysql データベース サーバー (win7 OS の Ubuntu OS と同じバージョン) を新しくインストールして、古いデータベース サーバーのすべてを復元する必要があります。

  1. 復元されたファイルから別の新しい mysql データベース サーバーと同じバージョンを作成します。

  2. mysql サーバーを停止する

  3. 復元したフォルダーをコピーして、mysql データベースが保存されている (C:\ProgramData\MySQL\MySQL Server 5.5\data) に貼り付けます。

  4. Linux mysql インストール フォルダにある ibdata1 ファイルをコピーし、(C:\ProgramData\MySQL\MySQL Server 5.5\data) に貼り付けます。交換する前に、既存のものを上書きするか、バックアップを作成してください。

  5. mysql サーバーを起動し、データベース ファイルが正常に復元されたかどうかを確認します。

  6. 現在使用している mysql サーバーで復元されたデータベースを使用するには、復元されたデータベースをエクスポートして、既存の mysql サーバーにインポートするだけです。

他に何もうまくいかなかったので、これらが役立つことを願っています。

于 2015-02-27T10:08:17.593 に答える
10

フォルダーを復元する場合は、ファイルを mysql:mysql に chown することを忘れないでください。

chown -R mysql:mysql /var/lib/mysql-data

そうしないと、データベースを削除したり、新しい列を追加したりするときにエラーが発生します。

MySQLを再起動します

service mysql restart
于 2014-06-29T12:41:33.317 に答える
2

MySql 5.1 (Win7) を使用。DB (InnoDbs) を再作成するために、次のディレクトリ (my.ini params) のすべての内容を置き換えました。

datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
innodb_data_home_dir="C:/MySQL Datafiles/"

その後、MySql Service を開始しましたが、すべて正常に動作します。

于 2012-03-01T11:19:23.650 に答える
1

はい、そうです!それらをデータベース フォルダー (OS によって異なります) に追加し、「MySQL Fix Permissions」などのコマンドを実行するだけです。これにより、データベースが復元されました。ファイルにも正しい権限が設定されていることも確認してください。

于 2009-01-27T19:05:58.717 に答える
0

これらのファイルを、動作しているmysqlデータベースのデータベースストレージフォルダーにコピーし、データベースを起動して、ファイルが「修復」されるのを待ってから、mysqldumpで抽出しました。

于 2009-01-27T19:07:52.533 に答える