MySQL資料庫修改資料庫名的三種方式
阿新 • • 發佈:2018-12-27
在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