MySQL資料庫重新命名的方法

dbasdk發表於2015-06-24

【前言】由於業務的需求需要對其中的一個資料庫進行備份,然後再匯入一個全新的資料庫;透過衡量發現直接修改當前資料庫名稱的方式進行備份是最快最省事的方法。本文件總結了對MySQL資料庫重新命名的一些方法;

 

【環境說明】

資料庫版本: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   批次進行修改;

 

總結:以上幾種的操作方法,其中第二種的方法是最保險的,這也是很多公司進行小資料庫備份還原的一種方式。

第三種方法雖然速度較快但是風險也相對較大,會導致一些檢視不能用,因為檢視的名稱雖然變了,但是檢視裡面引用的表還是原來資料庫的表,所以用這種方式進行遷移的時候就需要檢查資料庫檢視的情況;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN,某上市公司DBA,業餘時間專注於資料庫的技術管理,從管理的角度去運用技術。

技術部落格:獵人筆記                                                資料庫技術群:367875324 (請備註資料庫型別)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1710619/,如需轉載,請註明出處,否則將追究法律責任。

相關文章