データベースを異なるアーキテクチャー間で移動する必要がある場合、mysqldumpを使用して SQL ステートメントを含むファイルを作成します。次にそのファイルを別のマシンに転送してmysqlクライアントへの入力として扱います。
同じ浮動小数点形式をサポートしている異なるアーキテクチャー間で、MyISAM
テーブルの.frm
、.MYI
、および.MYD
ファイルをコピーできます。(MySQL はバイトスワッピング問題を処理します。)セクション15.2「MyISAM ストレージエンジン」を参照してください。
利用できるオプションを表示するにはmysqldump --helpを使用します。
データベースを 2 つのマシンで間で移動するもっとも容易な (ただし、速くはない) 方法は、データベースを搭載したマシン上で次のコマンドを実行することです。
shell> mysqladmin -h 'other_hostname' createdb_nameshell> mysqldumpdb_name| mysql -h 'other_hostname'db_name
データベースをリモートマシンから速度の遅いネットワークを介してコピーするには、次のコマンドを使用できます。
shell> mysqladmin createdb_nameshell> mysqldump -h 'other_hostname' --compressdb_name| mysqldb_name
ダンプをファイルに保存して、そのファイルをターゲットマシンに転送し、そのファイルをそこのデータベースにロードすることもできます。たとえば、データベースをソースマシンの圧縮ファイルに次のようにダンプできます。
shell> mysqldump --quickdb_name| gzip >db_name.gz
データベースのコンテンツを含んだファイルをターゲットマシンに転送し、そこで次のコマンドを実行します。
shell> mysqladmin createdb_nameshell> gunzip <db_name.gz | mysqldb_name
データベースの転送にmysqldumpおよびmysqlimportを使用することもできます。大きなテーブルの場合、これは単にmysqldumpを使用するよりも非常に速いです。次のコマンドで、DUMPDIR
はmysqldumpの出力の保存に使用されるディレクトリのフルパス名です。
最初に、その出力ファイルのディレクトリを作成してデータベースをダンプします。
shell> mkdirDUMPDIRshell> mysqldump --tab=DUMPDIRdb_name
次にDUMPDIR
ディレクトリのファイルをターゲットマシンの相当するディレクトリに転送して、そのファイルをそこの MySQL にロードします。
shell> mysqladmin createdb_name# create database shell> catDUMPDIR/*.sql | mysqldb_name# create tables in database shell> mysqlimportdb_nameDUMPDIR/*.txt # load data into tables
mysql
データベースをコピーすることを忘れないでください。付与テーブルがそこに格納されているからです。新しいマシンでmysql
データベースが用意できるまで、コマンドを MySQLroot
ユーザーとして実行しなければならない場合があります。
mysql
データベースを新しいマシンにインポートしたら、mysqladmin flush-privilegesを実行してサーバーに付与テーブルの情報をロードさせます。