物理データベース ファイルから MySQL データベースを復元することは可能ですか。次のファイル タイプを持つディレクトリがあります。
client.frm
client.MYD
client.MYI
しかし、さらに約20のテーブルがあります。
私は通常、mysqldump または同様のツールを使用してすべてを 1 つの SQL ファイルにまとめていますが、これらの種類のファイルを処理するにはどうすればよいでしょうか?
MySQL MyISAM テーブルは、次の 3 つのファイルの組み合わせです。
それらをデータベースフォルダーにコピーすることで復元できるはずです(Linuxでは、デフォルトの場所は です/var/lib/mysql/
)
サーバーが実行されていないときに実行する必要があります。
同じ問題がありますが、上記の手順に基づいてデータベースを正常に回復できませんでした。
Ubuntu OS からは mysql データベース フォルダーしか復元できませんでした。私の問題は、これらの読み取り不能な mysql データ フォルダーを使用してデータベースを回復する方法です。そこで、開発環境をwin7 OSに戻しました。
*注: 既存のデータベース サーバーが win7 で実行されており、復元されたファイルから取得するデータベース ファイルはほとんど必要ありません。Ubuntu OS からデータベース ファイルを正常に復元するには、mysql データベース サーバー (win7 OS の Ubuntu OS と同じバージョン) を新しくインストールして、古いデータベース サーバーのすべてを復元する必要があります。
復元されたファイルから別の新しい mysql データベース サーバーと同じバージョンを作成します。
mysql サーバーを停止する
復元したフォルダーをコピーして、mysql データベースが保存されている (C:\ProgramData\MySQL\MySQL Server 5.5\data) に貼り付けます。
Linux mysql インストール フォルダにある ibdata1 ファイルをコピーし、(C:\ProgramData\MySQL\MySQL Server 5.5\data) に貼り付けます。交換する前に、既存のものを上書きするか、バックアップを作成してください。
mysql サーバーを起動し、データベース ファイルが正常に復元されたかどうかを確認します。
現在使用している mysql サーバーで復元されたデータベースを使用するには、復元されたデータベースをエクスポートして、既存の mysql サーバーにインポートするだけです。
他に何もうまくいかなかったので、これらが役立つことを願っています。
フォルダーを復元する場合は、ファイルを mysql:mysql に chown することを忘れないでください。chown -R mysql:mysql /var/lib/mysql-data
そうしないと、データベースを削除したり、新しい列を追加したりするときにエラーが発生します。
MySQLを再起動します
service mysql restart
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 を開始しましたが、すべて正常に動作します。
はい、そうです!それらをデータベース フォルダー (OS によって異なります) に追加し、「MySQL Fix Permissions」などのコマンドを実行するだけです。これにより、データベースが復元されました。ファイルにも正しい権限が設定されていることも確認してください。
これらのファイルを、動作しているmysqlデータベースのデータベースストレージフォルダーにコピーし、データベースを起動して、ファイルが「修復」されるのを待ってから、mysqldumpで抽出しました。