第一種方法:
rename database olddbname to newdbname
這個(gè)是5.1.7到5.1.23版本可以用,但是官方不推薦,會(huì)有丟失數(shù)據(jù)的危險(xiǎn)
第二種:
1.創(chuàng)建需要改成新名的數(shù)據(jù)庫
2.mysqldum到處要改名的數(shù)據(jù)庫
3.刪除原來的舊庫
這種方法是安全的,但是如果數(shù)據(jù)量大,會(huì)很耗時(shí)
3.第三種:
#!/bin/bash
# 假設(shè)將sakila數(shù)據(jù)庫名改為new_sakila
# MyISAM直接更改數(shù)據(jù)庫目錄下的文件即可
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更改表名的命令,但是如果新表名后面加數(shù)據(jù)庫,將會(huì)將原來的數(shù)據(jù)庫的表移動(dòng)到新的數(shù)據(jù)庫,所有這種方法既安全又快速。