在RDS MySQL只读副本上创建用户

时间:2016-09-16 21:03:08

标签: mysql amazon-rds amazon-read-replica

是否可以/建议创建只能访问RDS MySQL只读副本而不能访问主数据库服务器的用户?我有一些高级用户,我想授予访问权限,以便他们可以运行运行缓慢的查询,但不想让他们访问主要的生产数据库本身。尝试直接在服务器上执行此操作,我得到ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement,所以猜测我必须在db参数组或类似的地方执行此操作。无论如何,想法?

3 个答案:

答案 0 :(得分:1)

您不应仅在只读副本中创建用户。

对于RDS来说,为主数据集和副本实例提供相同的数据集至关重要,因此不可能仅在RR中使用用户而不在主服务器上(或至少不可取)。

除了如何在RDS中运行副本之外,还有一个原因是,在故障转移的情况下,副本可以成为主副本并且角色将被更改

答案 1 :(得分:0)

  

您可以通过将为数据库实例创建的数据库参数组的read_only参数设置为false来将Amazon RDS数据库实例只读副本配置为可读/写。

     

您无法修改默认数据库参数组的参数设置;您必须创建自己的数据库参数组以更改其默认值的参数设置。

     

https://aws.amazon.com/premiumsupport/knowledge-center/rds-read-replica/

执行此操作时请小心,在创建用户后,请立即将其重新设置为read_only。如果您在主服务器上使用相同的用户名/主机对创建用户,则复制可能会停止,因为这会产生冲突。

答案 2 :(得分:0)

您可以在只读副本中添加或删除用户。这可以通过CREATE USER的常规方式来实现。但这是不可取的,因为只读副本和主副本应始终保持同步,因此,如果主副本出现故障,则只读副本可以提升为主副本。