MySQL数据库重命名方法汇总
技术背景
在MySQL中,直接使用RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
来重命名数据库存在问题,该语句仅在少数版本中存在,且会产生不良影响,总体而言不是一个好的选择。尤其是对于使用InnoDB存储引擎的数据库,其存储方式与MyISAM不同,需要更合适的重命名方法。
实现步骤
方法一:逐个重命名表
- 创建新的空数据库:使用
CREATE DATABASE new_db;
语句创建新的数据库。 - 重命名每个表:使用
RENAME TABLE old_db.table TO new_db.table;
语句将旧数据库中的表逐个重命名到新数据库中。 - 调整权限:重命名完成后,需要手动调整新数据库的权限。
示例脚本:
mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \
do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done
方法二:使用mysqldump
和mysqladmin
- 创建新数据库:使用
mysqladmin -u username