MySQLで検証用に現行のDBのコピーを作りたい場合など、
サーバー内のDBのコピーを作成したい場合、以下コマンドでDBのコピーが可能。
$ mysqldump -u <ユーザー名> -p <コピー元DB名> > <コピー元DB名>.sql
$ mysqladmin -u <ユーザー名> -p create <コピー先DB名>
$ mysql -u <ユーザー名> -p <コピー先DB名> < <コピー元DB名>.sql
1行目のmysqldump
コマンドでコピー元DBのデータを出力させて
2行目のMySQLを操作するコマンドmysqladmin
にcreateオプションを付けてコピー先のDBを作成する。
その後3行目のコマンドで、コピー先DBに対してmysqldumpで作成したファイルのデータを投入する。
実行例
▼コピー元DB(FromDB)の内容をFromDB.sqlというファイル名で出力。
mysqldump -u UserName -p FromDB > FromDB.sql
▼MySQLにコピー先となるDB(ToDB)を作成。
mysqladmin -u UserName -p create ToDB
▼コピー元DBのデータが書かれているFromDB.sqlをコピー先DB(ToDB)に対して実行。
mysql -u UserName -p ToDB < FromDB.sql
出力させたFromDB.sqlは他のMySQLにも使用できるので、
DBの複製やバックアップの取得はめっちゃ楽。
OracleにもDataPumpよりもこういう機能が欲しい…。