.frm、.MYI、および
.MYD ファイルを
MyISAM
テーブルに同じフローティングポイントフォーマットをサポートしている異なるアーキテクチャー間でコピーでします。(MySQL
はバイトスワッピング問題を処理します)。The MyISAM Storage Engine
を参照してください。
データベースを異なるアーキテクチャー間で移動する場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送して mysql クライアントの入力として扱います。
利用できるオプションを表示するには mysqldump --help を使用します。
データベースを 2 つのマシンで間で移動するもっとも容易な方法 (速くはないが) はデータベースを搭載したマシン上で以下のコマンドを実行することです。
shell>mysqladmin -h 'shell>other_hostname' createdb_namemysqldumpdb_name| mysql -h 'other_hostname'db_name
す。データベースを遠隔のマシンから速度の遅いネットワークにコピーするには、以下のコマンドを使用します。
shell>mysqladmin createshell>db_namemysqldump -h 'other_hostname' --compressdb_name| mysqldb_name
ダンプをファイルに保存して、そのファイルをターゲットマシンに転送し、そのファイルをそこのデータベースにロードすることもできます。たとえば、データベースをソースマシンの圧縮ファイルに以下のようにダンプします。
shell> mysqldump --quick db_name | gzip > db_name.gz
データベースのコンテンツを含んだファイルをターゲットマシンに転送しそこで以下のコマンドを実行します。
shell>mysqladmin createshell>db_namegunzip <db_name.gz | mysqldb_name
データベースの転送に
mysqldump および
mysqlimport
を使用することもできます。大きなテーブルの場合、これは単に
mysqldump
を使用するよりも非常に速く転送できます。次のコマンドで、DUMPDIR
は mysqldump
の出力の保存に使用されるディレクトリのフルパス名です。
最初に、その出力ファイルのディレクトリを作成してデータベースをダンプします。
shell>mkdirshell>DUMPDIRmysqldump --tab=DUMPDIRdb_name
次に DUMPDIR
ディレクトリのファイルをターゲットマシンの相当するディレクトリに転送して、そのファイルをそこの
MySQL にロードします。
shell>mysqladmin createshell>db_name# create databasecatshell>DUMPDIR/*.sql | mysqldb_name# create tables in databasemysqlimportdb_nameDUMPDIR/*.txt # load data into tables
mysql
データベースのコピーを忘れないでください。そこにグラントテーブルが保存されています。コマンドを
MySQL root
ユーザーとして新しいマシンで
mysql
データベースの用意できるまで実行することもできます。
mysql
データベースを新しいマシンにインポートしたら、mysqladmin
flush-privileges
を実行してサーバーにグラントテーブルの情報をロードさせます。
