Mysql数据库名称修改的方法 2019

Posted by Bink的博客 on April 20, 2019

Mysql数据库名称修改的方法

在Mysql的使用中,难免会遇到需要修改Mysql数据库名称的问题,具体如何操作呢,下面列举了几种常见的方法。

方法1

如果表示MyISAM那么可以直接去到数据库目录mv就可以。

Innodb完全不行,自己测试过,会提示相关表不存在。

# 这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险
$ RENAME database olddbname TO newdbname

方法2

1.创建需要改成新名的数据库。

2.mysqldum 导出要改名的数据库

3.删除原来的旧库(确定是否真的需要)

当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有想到,真有想死的冲动。

方法3

这里是使用一个shell脚本,也是最快的一种方法,支持Innodb。

shell脚本代码内容如下:

#!/bin/bash
# 一个快速修改Innodb数据库名称的方法
假设将oldDb数据库名改为$newDb
mysql -uroot -proot -e 'create database if not exists $oldDb'
list_table=$(mysql -uroot -proot -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='$newDb'")
 
for table in $list_table
do
    mysql -uroot -proot -e "rename table oldDb.$table to $newDb.$table"
done

通过上面这个脚本,可以快速的将你的数据库名称给修改掉,shell里面到了rename table,改表名的命令,但是如

果新表名后面加数据库名,就会将老数据库的表移动到新的数据库,所以,这种方法即安全,又快速。

因此推荐使用第三中方法来修改Innodb类型的数据库名称。