MySQL 重命名数据库

发现这不是一个省力的活。如果你的MySQL版本是5.1.7之后,并且是5.1.23之前,有一种简单的方法可以用:
 RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
 
但这种方法并不可靠,可能会造成数据的丢失,不建议使用。对此官方文档的说明(http://dev.mysql.com/doc/refman/5.1/en/rename-database.html):
 However, use of this statement could result in loss of database contents, which is why it was removed. Do not use RENAME DATABASE in earlier versions in which it is present.

意思是,这招数不安全,5.1.23以后的版本就不能用这语句了。

除此之外,还有一些折衷的办法,大致上都是先用mysqldump导出数据,创建新的数据库然后导入数据,然后drop掉旧的库。
 
mysqladmin create spm
mysqldump SPM | mysql spm

如果你有phpmyadmin,可以点到“操作”的tab,有一项是“将数据库改名为”,此处略去1000字。

PS:MySQL官方文档有提到 ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME ,这个是用来解决5.0和5.1版本升级后数据库名称显示的问题,跟重命名不是一回事。

相关推荐