第一種方法:
RENAME database olddbname TO newdbname
這個是5.1.7到5.1.23版本可以用的,但是官方不推薦,會有丟失數(shù)據(jù)的危險
第二種方法:
1.創(chuàng)建需要改成新名的數(shù)據(jù)庫。
2.mysqldum 導(dǎo)出要改名的數(shù)據(jù)庫
3.刪除原來的舊庫(確定是否真的需要)
當(dāng)然這種方法雖然安全,但是如果數(shù)據(jù)量大,會比較耗時,哎,當(dāng)時連這種方法都沒有想到,真有想死的沖動。
第三種方法:
我這里就用一個腳本,很簡單,相信大家都看的懂
#!/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ù)庫名,就會將老數(shù)據(jù)庫的表移動到新的數(shù)據(jù)庫,所以,這種方法即安全,又快速。