MySQLのデータベースの名前を変更する

データベースの名前を変更したい場合は、MySQLではリネームのコマンドがありません。
新しいDBを作成してdumpしたデータをインポートするか、RENAME TABLEコマンドを利用してリネームするしかないようです

dumpしてデータベースの名前を変更する

新しいデータベースを作成します

mysql> CREATE DATABASE new_db;

変更したいデータベースをmysqldumpコマンドで、データベースをエクスポートします

$ mysqldump -u root -p -d old_db > /var/tmp/old_db.dump

データベースがエクスポートできたら、新しい名前のデータベースにインポートします

$ mysql -u root -p -d new_db < /var/tmp/old_db.dump

新しいデータベースが問題なければ古いデータベースは削除します

mysql> DROP DATABASE old_db;

この方法の場合だと、データベースの容量が大きい場合は、エクスポート・インポート時に時間がかかります

RENAME TABLE コマンドを利用してリネームする

「RENAME TABLE」は、テーブルの名前を変更できます。参考URL:13.1.32 RENAME TABLE 構文

書式:RENAME TABLE tbl_name TO new_tbl_name

上記のように古いテーブル名前を新しい名前に指定すると変更することができます。

新しいデータベースを作成します

mysql> CREATE DATABASE new_db;

新しいデータベースに移動して、下記のようにRENAME TABLEコマンドで変更します

mysql> use new_db;
mysql> RENAME TABLE
  old_db.table1 TO new_db.table1,
  old_db.table2 TO new_db.table2,
  old_db.table3 TO new_db.table3,

#  以下必要なだけリネームするテーブル名を繋げていきます

新しいデータベースで問題なければ古いデータベースを削除します

mysql> DROP DATABASE old_db;

データベースのエクスポート・インポートを実施しないので、時間的は速く実施できます

 

スポンサーリンク

0
0