2011-11-28 98 views
0

我尝试使用重命名数据库命令,但失败并出现以下错误。我没有看到通过Amazon RDS控制台停止RDS实例的选项。如何重命名Amazon RDS托管的MySQL数据库实例

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

这种说法在MySQL 5.1.7中加入,但被认为是危险的,在MySQL 5.1.23被删除。

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

太少机会亚马逊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. flush priv收缩
2

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

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

mysqldump -u username -ppassword old_database_name > dump.sql 

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

mysql -u username -ppassword new_database_name < dump.sql 
相关问题