创建只能访问RDS MySQL读副本而不能访问主数据库服务器的用户是可能的/可取的吗?我有一些高级用户,我想授予他们访问权限,这样他们就可以运行速度较慢的查询,但不想让他们访问主要生产数据库本身。尝试直接在服务器上这样做,我得到ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
,所以猜测我必须在db参数组或类似的地方这样做。总之,想法?
不应该只在读副本中创建用户。
对于RDS来说,主实例和副本实例具有相同的数据集是至关重要的,因此不可能只在RR中有用户而不在主实例中(或者至少是不可取的)。
除了RDS中的副本如何工作之外,还有一个原因是,在故障转移的情况下,副本可以成为主副本,并且角色将被更改
可以在读副本中添加或删除用户。这可以通过通常的CREATE USER方法实现。但这是不可取的,因为读取副本&master应该始终保持同步,这样当master宕机时,read副本可以提升为master。
您可以通过将为您的DB实例创建的DB参数组的read_only参数设置为false来配置Amazon RDS DB实例读副本为读写。
不能修改默认DB参数组的参数设置;您必须创建自己的DB参数组,以便从默认值更改参数设置。
https://aws.amazon.com/premiumsupport/knowledge-center/rds-read-replica/
在执行此操作时要小心,并且在创建用户之后,立即将其放回read_only。如果在主服务器上创建了一个用户,并且在主服务器上使用了相同的用户名/主机对,那么复制很可能会停止,因为这会产生冲突。