2011年12月1日木曜日

MySQLのデータベースコピー方法

MySQLのデータベースをコマンドラインからコピーするには以下のようにする。
mysqldump コマンドの結果を mysql コマンドにパイプしている。
# mysqldump sourceDB | mysql destinationDB
sourceDB にコピー元データベース名、destinationDB にコピー先データベース名を指定する。

ユーザー名とパスワードを指定するには以下のように -u と -p オプションを使う。
# mysqldump -u USER -p PASSWORD sourceDB | mysql destinationDB

この方法によるコピーでは、コピー先に存在するテーブルは置き換えられるが、存在しないテーブルはそのまま残る。
mysqldumpの吐き出すSQLは以下のようにして見ることができるので、心配なら何が行われるのか内容を確認するとよい。
# mysqldump sourceDB > v.sql
# view v.sql
くれぐれも、コピー元とコピー先を逆にしないように注意。念には念を入れて /var/lib/mysql ディレクトリのコピーを作成する等、バックアップしてから実行すること。

1 件のコメント:

匿名 さんのコメント...

ユーザー名とパスワードの指定はmysql側も必要でした。私だけ?

mysqldump -u USER -p PASSWORD sourceDB | mysql -u USER -p PASSWORD destinationDB