mysql 资料库改名
某专案中有需求要将资料库改个名字,从 MySQL 的参考手册中发现有 rename database 的 SQL 命令,兴冲冲的执行了
mysql> rename database db1 to db2;
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 n
r ‘database db1 to db2’ at line 1
查了一下,发现这条命令在 MySQL 5.1.7 的时候被新增进来,5.1.23 的时候又被去掉了,查了一下版本:
mysql> select @@version;
| @@version |
+———–+
| 5.5.23 |
+———–+
再想其他办法,查了一些资料以后总结如下:
1 、 MYISAM 引擎把库名字对应的资料夹名改了
1.1 、关闭 mysqld
1.2 、把 data 目录中的 db_name 目录重新命名为 new_db_name
1.3 、开启 mysqld
2 、 INNODB 引擎分为下面几个步骤:
2.1 按新名字建立一个资料库
2.2 删除原有库中所有表上的触发器
2.3 使用 rename table 命令将表从原资料库复制到新资料库
2.4 在新资料库上重新建立 2.2 中被删除的触发器
2.5 在新资料库上重新建立储存过程、自定义函式、 Events 等
RENAME TABLE 命令语法:
RENAME TABLE db_name.table1 TO new_db_name.table1,
db_name.table2 TO new_db_name.table2;