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

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