【環境說明】
資料庫版本:5.5.36
資料庫存儲引擎:INNODB
表空間存儲方式:獨立表空間
【操作方法】
方法一:直接對資料庫進行重命名(經測試該方法在5.5版本中不可用)
腳本:RENAME DATABASE db_name TO new_db_name
方法二:通過mysqldump進行資料庫的備份再導入(當資料庫較大的時候,這種方法耗時耗力)
方法三:重命名資料庫裡面的所有表,
information_schema資料庫table表記錄了資料庫中所有表的資訊;
1、CREATE DATABASE new_db_name; 建立新的資料庫
2、RENAME TABLE db_name.table1 TO new_db_name.table1; 對所有的表進行重命名
3、DROP DATABASE db_name; 删除原來的資料庫
當資料庫表包含表很多的情況下,這樣操作是比較效率也比較低,可以通過以下腳本進行批量修改;
mysql -uroot -p -e "select concat('rename table db.',table_name,' to new_db.',table_name,';') from information_schema.TABLES where TABLE_SCHEMA='db';" > rename_mysql_name.sql
執行sql語句
mysql -uroot -p < rename_mysql_name.sql 批量進行修改;
總結:以上幾種的操作方法,其中第二種的方法是最保險的,這也是很多公司進行小資料庫備份還原的一種方式。
第三種方法雖然速度較快但是風險也相對較大,會導緻一些視圖不能用,因為視圖的名稱雖然變了,但是視圖裡面引用的表還是原來資料庫的表,是以用這種方式進行遷移的時候就需要檢查資料庫視圖的情況;