2013/07/03

mysql rename database

MySQL 5.1.7 で導入された RENAME DATABASE構文がいつのまにかなくなった。
ーーー
mysql> rename database mysample1 to mysample2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database mysample1 to mysample2' at line 1
ーーー
「5.1.7 で導入されたけど、デンジャラスだったので 5.1.23 で亡く」


解決策:
・dumpを取って、新たのDBにリストアする。

他に下記の方法もある
mysql> CREATE DATABASE newdb;
echo "show tables;"|mysql --defaults-file=/etc/mysql/credentials.cnf dbname|head -n -1 >~/tables.txt
cat ~/tables.txt |xargs -L 1|awk '{print "RENAME TABLE dbname."$1" TO newdb."$1";"}'  >~/rename.txt
cat ~/rename.txt|mysql --defaults-file=/etc/mysql/credentials.cnf