mysql - AWS RDS只读机——如何添加新用户
问题描述
我有两台 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...
那怎么做呢?
解决方案
sql_log_bin
编辑:不能像特权一样在 AWS RDS 上工作
最简单的方法是在 master 上创建它CREATE USER foo@localhost
。这也将复制到从站那里创建一个用户。
然后要删除对 master 的访问权限,SET SESSION sql_log_bin=0; DROP USER foo@localhost
. 这sql_log_bin=0
意味着同一会话中的所有语句都不会写入二进制日志。不同会话上的所有其他服务器活动仍然被复制。
这样做的结果是从服务器将看不到该DROP USER
语句,这意味着foo
用户仍然在从服务器上,但不在主服务器上。
推荐阅读
- android - 如何在用于移动应用程序的科尔多瓦应用程序中完成 SIM 绑定
- bash - Jenkins Echo 响应(Http 状态和正文)
- react-native - redux action promise 中的 setState
- azure - 在 terraform 模块中显式使用提供程序
- microsoft-teams - Microsoft Teams 中带有自适应卡片的任务模块
- react-native - react native flat list 重新渲染所有项目并添加每个新项目
- apache-kafka - 在 BQ 中自动生成列和表而不在消息中指定模式?
- python-3.x - pyinstaller exe格式的代码运行不正常
- python - 在 Python 中模糊图像
- c# - 为什么我不能在 Blazor 中使用循环计数器