首先,如果是数据库中的表都为MyISAM存储引擎,直接停库,将对应数据库文件直接重命名为新的启动数据库即可。由于线上环境几乎都是Innodb存储引擎,因此这里主要讨论Innodb存储引擎的表数据库如何重命名。
方法1.
新建数据库,重命名原库的所有表再删除原库,也是最常用的方法,速度非常快。

create database new_database;
rename table old_database.old_table to new_database.old_table;

如果表比较多,可以写脚本批量循环执行。
方法2.
创建新库,将原库的数据导出导入到新库。

mysqldump -uroot  -p'mypassword'   --default-character-set=utf8 -R  --triggers  --events --opt   --set-gtid-purged=off --hex-blob --single-transaction --master-data=2  old_database>demo.sql
mysql>create databse new_database;
mysql>use new_database;
mysql>source demo.sql;

如果数据量很大,会非常耗时。

方法3.
直接重命名数据库

rename database old_database TO new_database;

该方法只在mysql5.1的部分版本能使用,因此几乎没什么用。

更多推荐

Mysql数据库重命名