AWS RDS只读机--如何添加新用户
AWS RDS read-only machine -- how to add new user
我有两台RDS mysql服务器运行ning,一台是主(master)rds服务器,一台是只读slave,是通过RDS控制台创建的。
我如何为只读机器创建一个新的用户帐户,它不能访问主主机?例如,当我运行以下命令时:
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';
我得到:
The MySQL server is running with the --read-only option so it cannot execute this statement
我希望用户能够访问以下内容:
- 是(只读):站点-read.cyrnzp...
- 否(主站):站点-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
意味着同一会话中的所有语句都不会写入二进制日志。不同会话上的所有其他服务器 activity 仍被复制。
这样做的结果是从服务器不会看到 DROP USER
语句,这意味着 foo
用户仍在从服务器上,但不在主服务器上。
我有两台RDS mysql服务器运行ning,一台是主(master)rds服务器,一台是只读slave,是通过RDS控制台创建的。
我如何为只读机器创建一个新的用户帐户,它不能访问主主机?例如,当我运行以下命令时:
CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';
我得到:
The MySQL server is running with the --read-only option so it cannot execute this statement
我希望用户能够访问以下内容:
- 是(只读):站点-read.cyrnzp...
- 否(主站):站点-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
意味着同一会话中的所有语句都不会写入二进制日志。不同会话上的所有其他服务器 activity 仍被复制。
这样做的结果是从服务器不会看到 DROP USER
语句,这意味着 foo
用户仍在从服务器上,但不在主服务器上。