在RDS Mysql DB中刷新和锁定表所需的权限

时间:2013-10-24 16:05:05

标签: mysql sql amazon-web-services rds

我想Flush然后锁定RDS实例上所有Mysql数据库中的所有表。

遵循Mysql文档,最简单的方法是运行:

FLUSH LOCAL TABLES WITH READ LOCK

比照:http://dev.mysql.com/doc/refman/5.6/en/flush.html

但是当我使用Master用户(使用RDS实例创建向导创建)运行此查询时,我收到此错误:

Mysql::Error: Access denied for user 'my_db_user'@'%' (using password: YES)

my_db_user在%上有LOCK TABLES和RELOAD权限(等等)。

Mysql Engine是5.6.13。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

你不能在RDS上这样做。

FLUSH [LOCAL] TABLES WITH READ LOCK;不受支持。我的假设是,它可能会干扰他们的“rdsadmin”用户(在流程列表中可见)正在监控或管理您的实例。

如果你正在尝试使用mysqldump,那么--single-transaction就可以了:

https://forums.aws.amazon.com/thread.jspa?threadID=57642#

否则,如果你试图阻止写入,我知道的唯一选择是手动锁定所有表,或者使用可以枚举表并获取锁的自动脚本。