我想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。
我在这里缺少什么?
答案 0 :(得分:2)
你不能在RDS上这样做。
FLUSH [LOCAL] TABLES WITH READ LOCK;
不受支持。我的假设是,它可能会干扰他们的“rdsadmin”用户(在流程列表中可见)正在监控或管理您的实例。
如果你正在尝试使用mysqldump,那么--single-transaction
就可以了:
https://forums.aws.amazon.com/thread.jspa?threadID=57642#
否则,如果你试图阻止写入,我知道的唯一选择是手动锁定所有表,或者使用可以枚举表并获取锁的自动脚本。