MySQL データベースをリネームする方法
新しくデータベースを作り直したいけど、今あるデータベースを残しておきたい時などに使えそうな方法です。
少し調べてみましたが、MySQL では直接データベースの名前をリネームする方法が無いようです。
テーブル名をリネームす方法はあるようなので、このあたりを組み合わせて行うことになります。
大まかな流れは下記のようになります。
- リネーム先のデータベースを作成する
- リネーム元のデータベース内にあるテーブルをすべてリネームする
まずは、リネーム先のデータベースを作成します。
create database db_new;
データベース名を new みたいな名前にしていますが、ここで作成したデータベースに今使っているデータベースのテーブルを入れるイメージです。
今使用しているデータベース内のデーブル一覧は下記のコマンドで確認することができます。
show tables from db_old
ここで、確認したテーブルに対して下記のコマンドを 1 件ずつ実行して新しく作ったテーブルへ移していきます。
rename table db_old.table_name to db_new.table_name
これを繰り返すことで、結果的にデータベースをリネームした状態がが作り出せますが、少し手間なので、またの機会にでもリネーム用のスクリプトを作成するなりして、半自動化できれば楽になりそうです。
主に、データベース名に日付を付けて、一時的なバックアップを手軽に作るといった、使い方ができそうです。