MySQLのデータベースをコピーするには、mysqldumpを使います。
mysqldumpはデータベースをダンプするためのユーティリティですが、他のMySQLサーバにデータをコピーするのに使うことができます。
ローカルで動いているMySQLの中で"source_database"から"dest_database"へデータをコピーするには、以下のようにします。
$ mysqldump -u user_name -p -n source_database | ¥ > mysql -u user_name -p dest_database-nオプションは、CREATE DATABASEを出力に含めないようにするためのオプションです。これを付けることで、dest_databaseへデータをコピーできるようになります。
また、コピーしたいデータベースが巨大なときもあるかと思います。そのようなときに、以下のオプションを使うと、さらに効率良くデータをコピーできます。
--no-autocommit
これをつけると、ダンプしたファイルの全体を囲うようにautocommit=0がつきます。つまり、後でリストア時にはファイル全体が1トランザクションになり、うまくいけば劇的に早くインポートできます。
--single-transaction
このオプションを付けてダンプすると--lock-tablesを付けずにシングルトランザクションでダンプするので、一貫性のあるデータをダンプできます。
--opt
これはデフォルトで有効になっているはずです。このオプションには--lock-tablesが含まれますがこれはダンプ時ではなくてインポート時にロックする指定です。
■関連エントリ
粒子法による固液連成シミュレーション
--
3 件のコメント:
コマンド例二行目のmysqldumpはmysqlのまちがいですね。
間違っていますね。修正しました。
ご指摘ありがとうございます!
/usr/local/mysql/bin/mysqldump -n source_database | /usr/local/mysql/bin/mysql dest_database
で念願のデータベース丸ごとコピーができました。ありがとうございます!
dest_databaseは事前に作成しておかないといけないんですね。
コメントを投稿