2通りの方法があります
- mysqldumpを使う方法
- table renameを使う方法
mysqldumpを使う方法
データ量が気にならないのであればこれを使うのが最も単純です
mysqldumpを使う方法
$ mysqldump -uuser old_database -p -hhost > old_database.dump
$ mysqladmin -uuser -p -hhost create new_database
$ mysql -uuser new_database -p -hhost < old_database.dump
$ mysql -uuser -p -hhost drop old_database
参考:https://weblabo.oscasierra.net/mysql-database-copy/
table renameを使う方法
データ量が大きい場合はmysqldumpではなく、テーブルをrenameする方法がおすすめです。
tableをrenameする方法
mysql> rename table old_database.table to new_database.table;
old_database内の全テーブルのコマンドを作るのが大変な場合、下記記事のコマンド作成方法を参考にしてください
参考:https://qiita.com/whisper/items/06add22b692a25bd19b5
renameが使えないテーブルだった場合
これはしょうがないです。その場合はあきらめてmysqldumpしてください。(自分はそうしました)
例えば古いバージョンのMySQLでストレージエンジンをmroongaでラッパーモードにしている場合、rename(alter table全般?)が使えません。
どなたかもっといい方法がありましたら教えてください。