Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  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.