Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


2.11.5 MySQL データベースのほかのマシンへのコピー

データベースを異なるアーキテクチャー間で移動する必要がある場合、mysqldump を使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送して mysql クライアントへの入力として扱います。

注記

同じ浮動小数点形式をサポートしている異なるアーキテクチャー間で、MyISAM テーブルの .frm.MYI、および .MYD ファイルをコピーできます。(MySQL はバイトスワッピング問題を処理します。)セクション15.2「MyISAM ストレージエンジン」を参照してください。

利用できるオプションを表示するには mysqldump --help を使用します。

データベースを 2 つのマシンで間で移動するもっとも容易な (ただし、速くはない) 方法は、データベースを搭載したマシン上で次のコマンドを実行することです。

shell> mysqladmin -h 'other_hostname' create db_name
shell> mysqldump db_name | mysql -h 'other_hostname' db_name

データベースをリモートマシンから速度の遅いネットワークを介してコピーするには、次のコマンドを使用できます。

shell> mysqladmin create db_name
shell> mysqldump -h 'other_hostname' --compress db_name | mysql db_name

ダンプをファイルに保存して、そのファイルをターゲットマシンに転送し、そのファイルをそこのデータベースにロードすることもできます。たとえば、データベースをソースマシンの圧縮ファイルに次のようにダンプできます。

shell> mysqldump --quick db_name | gzip > db_name.gz

データベースのコンテンツを含んだファイルをターゲットマシンに転送し、そこで次のコマンドを実行します。

shell> mysqladmin create db_name
shell> gunzip < db_name.gz | mysql db_name

データベースの転送に mysqldump および mysqlimport を使用することもできます。大きなテーブルの場合、これは単に mysqldump を使用するよりも非常に速いです。次のコマンドで、DUMPDIRmysqldump の出力の保存に使用されるディレクトリのフルパス名です。

最初に、その出力ファイルのディレクトリを作成してデータベースをダンプします。

shell> mkdir DUMPDIR
shell> mysqldump --tab=DUMPDIR db_name

次に DUMPDIR ディレクトリのファイルをターゲットマシンの相当するディレクトリに転送して、そのファイルをそこの MySQL にロードします。

shell> mysqladmin create db_name           # create database
shell> cat DUMPDIR/*.sql | mysql db_name   # create tables in database
shell> mysqlimport db_name DUMPDIR/*.txt   # load data into tables

mysql データベースをコピーすることを忘れないでください。付与テーブルがそこに格納されているからです。新しいマシンで mysql データベースが用意できるまで、コマンドを MySQL root ユーザーとして実行しなければならない場合があります。

mysql データベースを新しいマシンにインポートしたら、mysqladmin flush-privileges を実行してサーバーに付与テーブルの情報をロードさせます。


User Comments
  Posted by Jonathan Nicol on March 26, 2014
docs say: "cat DUMPDIR/*.sql | mysql db_name"

This just runs them in alphabetical order; if you have any Views they will error out if the underlying table doesn't exist yet. I moved all the *.sql files for Views to another folder to run them separately after the real tables are created.

Sign Up Login You must be logged in to post a comment.