MySQLデータをインポートする限り、3つのことを考慮する必要があります。
MyISAM
MyISAMテーブルのインポートは、拡張子が.frm
の3つのファイルを移動するだけの簡単なものです。 、.MYD
、および.MYI
指定されたテーブルのファイルをMySQLフォルダに入れます。たとえば、テーブル名がmydataの場合、3つのファイル
-
mydata.frm
-
mydata.MYD
-
mydata.MYI
以下は悪夢の悪夢かもしれません。 InnoDBのインポートは、次の2つのカテゴリのいずれかに分類される多くの要因に完全に依存しています。
InnoDB( innodb_file_per_table 無効[デフォルト])
すべてのInnoDBデータとインデックスページは/var/lib/mysql/ibdata1
にあります 。このファイルは、ソースマシン(Server-S)からターゲットマシン(Server-T)に移動し、同じ絶対パスに配置する必要があります。実際、ここにショッカーがあります。Server-SとServer-Tは同じでなければなりません。つまり、InnoDB .ibd
をインポートおよびエクスポートすることはできません。 他のマシンへのファイル。これらは、同じマシン.ibd
でのみインポートおよびエクスポートできます。 で作成されました。
また、/ var / ib / mysql/ib_logfile0と/var/ ib / mysql / ib_logfile1をServer-Sから移動し、Server-Tの同じ絶対パスに配置する必要があります。
また、Server-Sの/etc/my.cnfに設定されているすべてのInnoDB変数が、Server-Tの/etc/my.cnfに設定されていることを確認する必要があります。
InnoDB( innodb_file_per_table 有効)
すべてのInnoDBテーブルに対して、2つのファイルがあります。たとえば、mydataデータベースのInnoDBテーブルがmytableと呼ばれる場合、/var/lib/mysql/mydata/mytable.frm
が作成されます。 および/var/lib/mysql/mydata/mytable.ibd。 .ibd
ファイルには、テーブルのデータページとインデックスページが含まれています。個々のテーブルをインポートするには、
-
mytable.frm
を配置します/var/lib/mysql/mydata folder
にあります サーバー上-T -
mytable.ibd
を配置します/var/lib/mysql/mydata folder
にあります サーバー上-T -
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
を実行します
/var/lib/mysql/ibdata1
があることを確認してください インポート元と同じ場所にあります。
物語のモラル
異なるサーバー間でIMPORTTABLESPACE手法を使用しないでください。すべてのmysqldumpを実行し、mysqldumpをインポートするだけです。論理ダンプは常に最も安全な方法です!!!