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


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

第一種方法:

rename database olddbname to newdbname

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

第二種:

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

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

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"

  

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

作者:Atlas

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM