MySQL データベースをリネームする方法

2018.1.29

新しくデータベースを作り直したいけど、今あるデータベースを残しておきたい時などに使えそうな方法です。

少し調べてみましたが、MySQL では直接データベースの名前をリネームする方法が無いようです。

テーブル名をリネームす方法はあるようなので、このあたりを組み合わせて行うことになります。

大まかな流れは下記のようになります。

まずは、リネーム先のデータベースを作成します。

create database db_new;

データベース名を new みたいな名前にしていますが、ここで作成したデータベースに今使っているデータベースのテーブルを入れるイメージです。

今使用しているデータベース内のデーブル一覧は下記のコマンドで確認することができます。

show tables from db_old

ここで、確認したテーブルに対して下記のコマンドを 1 件ずつ実行して新しく作ったテーブルへ移していきます。

rename table db_old.table_name to db_new.table_name

これを繰り返すことで、結果的にデータベースをリネームした状態がが作り出せますが、少し手間なので、またの機会にでもリネーム用のスクリプトを作成するなりして、半自動化できれば楽になりそうです。

主に、データベース名に日付を付けて、一時的なバックアップを手軽に作るといった、使い方ができそうです。