如何重命名Amazon RDS托管的MySQL数据库实例

时间:2011-11-28 06:40:14

标签: mysql sql amazon-rds

我尝试使用rename database命令,但它失败并出现以下错误。我没有看到通过Amazon RDS控制台停止RDS实例的选项。

mysql> rename database foo to foo_orig;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database foo to foo_orig' at line 1

2 个答案:

答案 0 :(得分:2)

  

此声明已添加到MySQL 5.1.7中,但发现它很危险,并已在MySQL 5.1.23中删除。

来自http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

Amazon RDS使用低于5.2的版本的可能性太小。
如果您可以访问mysql服务器,可以尝试: -

  1. 停止mysql守护程序
  2. 转到datadir
  3. mv $ old_name $ new_name
  4. 重启mysql守护程序
  5. 登录mysql数据库
  6. 将$ old_name的所有权限更新为$ new_name(在表mysql.db下)
  7. 刷新权限

答案 1 :(得分:2)

该命令被删除了,就像@ajreal提到的那样,但是对mysql文件系统进行任何维护都是危险的。一个小错误,你的mysql服务无法启动。

推荐的方法是将整个数据库导出到sql文件中,然后以不同的名称再次导入。您可以将站点置于维护模式,以确保在执行此过程时没有人读取或写入数据。

mysqldump -u username -ppassword old_database_name > dump.sql

然后将其导入同一服务器:

mysql -u username -ppassword new_database_name < dump.sql