我有两个运行的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
我希望用户可以访问以下内容:
那怎么办呢?
编辑:无法在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
用户仍在从站上,但不在主服务器上。