MySQL數據庫修改數據庫名的三種方式

在Innodb數據庫引擎下修改數據庫名的方式與MyISAM引擎下修改數據庫的方式完全不一樣,如果是MyISAM可以直接去數據庫目錄中mv就可以,Innodb如果用同樣的方法修改會提示相關表不存在。

第一種方法:

rename database olddbname to newdbname

這個是5.1.7到5.1.23版本可以用,但是官方不推薦,會有丟失數據的危險

第二種:

1.創建需要改成新名的數據庫

2.mysqldum到處要改名的數據庫

3.刪除原來的舊庫

這種方法是安全的,但是如果數據量大,會很耗時

3.第三種:

#!/bin/bash
# 假設將sakila數據庫名改爲new_sakila
# MyISAM直接更改數據庫目錄下的文件即可

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

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

這裏用到了rename table更改表名的命令,但是如果新表名後面加數據庫,將會將原來的數據庫的表移動到新的數據庫,所有這種方法既安全又快速。

作者:Atlas

出處:Atlas的博客 http://www.cnblogs.com/gomysql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章