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;