sql >> データベース >  >> RDS >> Mysql

.frmおよび.optファイルをMySQLにインポートします

    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 ファイルには、テーブルのデータページとインデックスページが含まれています。個々のテーブルをインポートするには、

    1. mytable.frmを配置します /var/lib/mysql/mydata folderにあります サーバー上-T
    2. mytable.ibdを配置します /var/lib/mysql/mydata folderにあります サーバー上-T
    3. ALTER TABLE mydata.mytable IMPORT TABLESPACE;を実行します

    /var/lib/mysql/ibdata1があることを確認してください インポート元と同じ場所にあります。

    物語のモラル

    異なるサーバー間でIMPORTTABLESPACE手法を使用しないでください。すべてのmysqldumpを実行し、mysqldumpをインポートするだけです。論理ダンプは常に最も安全な方法です!!!



    1. Centos7にPerconaToolkitをインストールして使用する

    2. 私のOOW15旅行は完了しました

    3. KGXGNポーリングエラー(15)

    4. Android-2つのテーブルに関連するデータをコンテンツプロバイダーの挿入メソッドに渡すにはどうすればよいですか?