web-dev-qa-db-ja.com

MYSQLデータベースの回復

WindowsにWAMPサーバーを再インストールする必要があり、その過程でMYSQLも再インストールしました。 phpmyadminにログインすると、左側のナビゲーションパネルに一覧表示されているテーブルがデータベースに表示されます。しかし、個々のテーブルをクリックすると、テーブルが存在しないというエラーがスローされます。この場所への閲覧C:\wamp\bin\mysql\mysql5.6.12\data、データベース名のあるフォルダが表示されます。 * .ibdで終わるファイルも表示されます。ファイル名はテーブル名と同じです。データベースが異なると、フォルダーの内容も異なります。 * .ibdだけで終わるファイルがあるものもあります。 * .ibdと* .frmが混在しているものもあります。一部のフォルダには* .optファイルもあります。 MySQLの管理者側についてはあまり知りません。 PHP=を使用して、簡単なSQLステートメントでそれとやり取りするのに十分な知識があります。データベースを回復する方法についていくつかの記事を読みました。私の特定の問題に直接関係するか、私の理解を超えています。

誰でも簡単にデータベースを復元できる簡単な方法はありますか?それとも、データベースの回復に関する以前の経験が必要ですか?
いくつかのオプションを提案してください。

1
user1720897

いくつかの可能性、それらのいずれかがあなたを助けるかどうかはわかりません

強制回復

[mysqld]
innodb_force_recovery = 4

強制復旧を実行しても、データベースは一貫性のない状態になります。ただし、これにより、アクセスできるデータのバックアップを作成できます。

通常、この方法で取得されたデータのほとんどは無傷です。深刻な破損により、SELECT * FROM tbl_nameステートメントまたはInnoDBバックグラウンドオペレーションがクラッシュまたはアサートするか、InnoDBロールフォワードリカバリがクラッシュする可能性さえあります。このような場合は、innodb_force_recoveryオプションを使用して、バックグラウンドオペレーションが実行されないようにしながらInnoDBストレージエンジンを強制的に起動し、テーブルをダンプできるようにします。

InnoDBリカバリを強制する

権限

MySQLサービスユーザーがC:\ wamp\bin\mysql\mysql5.6.12\dataに対する完全な権限を持っていることを確認します

enter image description here

MySQLを実行するサービスでは、データファイルを保存するディレクトリを完全に制御する必要があります

更新

FSエラー

C:\ wamp\bin\mysql\mysql5.6.12\dataディレクトリからの読み取りに問題がありますか?

[コントロールパネル]-> [管理ツール]-> [イベントビューア]、[Windowsログ]-> [システム]の順に移動すると、ディスクの問題に関する詳細情報が表示される場合があります

考えられる解決策の1つは、データディレクトリを別のドライブやディレクトリにコピーすることです。

MySQLを停止する

データディレクトリの内容を新しいドライブやディレクトリにコピーします。

C:\ wamp\bin\mysql\mysql5.6.12\my.cnfファイルを開き、mysqldのdatadirオプションを変更します

[mysqld]

datadir=D:\some\other\directory

MySQLを起動します

2
Craig Efrein