1. 程式人生 > >MySQL資料庫修改庫名的三種方法

MySQL資料庫修改庫名的三種方法

如果是MyISAM儲存引擎那麼可以直接去到資料庫目錄mv就可以。

如果是Innodb完全不行,會提示相關表不存在。

第一種方法:
RENAME database olddbname TO newdbname

官方不推薦,會有丟失資料的危險

第二種方法:

1.建立需要改成新名的資料庫。
2.mysqldum 匯出要改名的資料庫
3.刪除原來的舊庫(確定是否真的需要)
當然這種方法雖然安全,但是如果資料量大,會比較耗時,同時還需要考慮到磁碟空間等硬體成本。

第三種方法:

直接跑一個shell指令碼,

#!/bin/bash
# 假設將db1資料庫名改為db2
# MyISAM直接更改資料庫目錄下的檔案即可

mysql -uroot -p123456 -e 'create database if not exists db2'
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='db1'")

for table in $list_table
do
    mysql -uroot -p123456 -e "rename table db1.$table to db2.$table"
done