我有两个RDS mysql服务器正在运行,一个是主(主(rds服务器,另一个是只读从服务器,它是通过RDS控制台创建的。
如何为无法访问主计算机的只读计算机创建新的用户帐户?例如,当我运行以下命令时:
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';
我得到:
The MySQL server is running with the --read-only option so it cannot execute this statement
我希望用户能够访问以下内容:
- 是(只读(:site-read.cyrnzp...
- 否(主(:site-provisioned.cyrnzp...
那该怎么做呢?
编辑:不适用于 AWS RDS,因为sql_log_bin
具有特权
最简单的方法是在主CREATE USER foo@localhost
上创建它。这也将复制到在那里创建用户的从属。
然后,要删除对主服务器的访问权限,请SET SESSION sql_log_bin=0; DROP USER foo@localhost
.sql_log_bin=0
意味着同一会话中的所有语句都不会写入二进制日志。仍会复制不同会话上的所有其他服务器活动。
这样做的结果是从属服务器不会看到DROP USER
语句,这意味着foo
用户仍在从服务器上,但不在主服务器上。