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;
データベースのエクスポート・インポートを実施しないので、時間的は速く実施できます
ディスカッション
コメント一覧
まだ、コメントがありません