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
このInnoDBの図解をご覧ください
ibdata1を.ibd
ファイルに添付する唯一のものは、データディクショナリです。
あなたの使命は、あなたがそれを受け入れることに決めた場合、各テーブルを作成し、 .ibd
何かをする前に、「\ bin \ mysql \ mysql5.6.12 \ data」の完全なコピーを別の場所に作成します
サンプルはこちら
mydb
テーブルを含むデータベースがあるとしますmytable
。これの意味は
- フォルダーがあります
\bin\mysql\mysql5.6.12\data\mydb
- そのフォルダー内には、
が必要.frm
です。私の投稿を見ると、どのように.frmファイルからテーブルスキーマを抽出できますか?、テーブルの作成に必要なSQLを生成できるMySQLユーティリティをダウンロードできます。
あなたは今、次のことをする必要があります
- 移動
mytable.ibd
に\bin\mysql\mysql5.6.12\data
- SQLを実行してInnoDBテーブルを作成します
- mysqlにログインして実行します
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
- mysqlにログインして実行します
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(これ\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
によりデータディクショナリに登録されます)
この後、テーブルmydb.mytable
は完全にアクセス可能になります。次のコマンドを実行するだけで、そのアクセシビリティをテストできます。
SELECT * FROM mydb.mytable LIMIT 10;
試してみる !!!
DRINK(データリカバリには必要な知識が組み込まれています)