WAMPディレクトリが別のユーザーによって誤って削除されます。 MySQLのデータフォルダーのみが使用可能です。そして、その中で、データベースフォルダー( "\ bin\mysql\mysql5.6.12\data \"内のデータベースの名前を持つフォルダー)のみが使用可能です。 すべてのファイル「\ bin\mysql\mysql5.6.12\data \」のルートにある「ibdata1 "を含む」も削除されます。
データベースフォルダーには、以下の拡張子のファイルのみが含まれます。
* .frm、*。ibd
および「db.opt」ファイル。
データベースはどのように回復できますか?
私はすでにbdata1を回復しようとしました。しかし、それを取り戻すことはできません。また、一部のデータベースにはMYISAMも含まれています。
MyISAMテーブルmydb.mytableの場合、3つのファイルが必要です。
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
各ファイルには必要なデータ、メタデータ、およびインデックス情報が含まれているため、テーブルとしてすでにアクセス可能である必要があります。集合的に、それらはテーブルを形成します。アクセスする外部ストレージエンジンのメカニズムはありません。
InnoDBのこの図解をご覧ください
Ibdata1を.ibd
ファイルに添付する唯一のものは、データディクショナリです。
あなたの使命は、それを受け入れることにした場合、各テーブルを作成して.ibd
でスワップすることです
何かする前に、「\ bin\mysql\mysql5.6.12\data」の完全なコピーを別の場所に作成します
こちらがサンプルです
データベースmydb
にテーブルmytable
があるとします。これの意味は
\bin\mysql\mysql5.6.12\data\mydb
がありますmytable.frm
mytable.ibd
.frm
が必要です。私の投稿 。frmファイルだけからテーブルスキーマを抽出するにはどうすればよいですか? を見ると、テーブルの作成に必要なSQLを生成できるMySQLユーティリティをダウンロードできます。
次を実行する必要があります
mytable.ibd
を\bin\mysql\mysql5.6.12\data
に移動ALTER TABLE mydb.mytable DISCARD TABLESPACE;
を実行します(これにより\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
が削除されます)\bin\mysql\mysql5.6.12\data\mytable.ibd
を\bin\mysql\mysql5.6.12\data\mydb
にコピーALTER TABLE mydb.mytable IMPORT TABLESPACE;
を実行します(これにより\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
がデータディクショナリに登録されます)この後、テーブルmydb.mytable
は完全にアクセス可能になります。次のコマンドを実行するだけで、そのアクセシビリティをテストできます。
SELECT * FROM mydb.mytable LIMIT 10;
試してみる !!!