防止非复制写入 MySQL 从站?

14 mysql mysql-replication replication

我们有一些 MySQL 数据库服务器设置了基于行的复制,以提高性能。软件写入主机,并从主机或从机读取。在大多数情况下,一切都很好。

我的理解是 MySQL 将允许写入从站,即使它知道它是一个 MySQL 从站。理想情况下,我想关闭它,因此即使有人编写了一些错误的代码来获取读取连接并执行UPDATE,它也会抛出错误而不是将数据放在从属设备上。

有没有办法在 MySQL 中做到这一点?显然,我们也希望通过我们的软件使这成为不可能,但是就像我们服务器上的防火墙一样,我希望尽可能地防御。

谢谢!

War*_*ner 15

启用read-onlymy.cnf 中的选项。它也可以在命令行上使用--read-onlymysqld指定为标志。

  • 请注意,这不适用于超级用户(即:MySQL 中的 root 用户),因为它不服从只读。 (6认同)

小智 6

作为设置的替代方案read_only=1(例如,当从属实例上有其他暂存器/报告/开发数据库时),我有时会从所有用户中将除 SELECT 之外的所有权限剥离到我正在复制的数据库中。

也就是说,在master上运行了GRANT命令之后,我在slave上运行了REVOKE命令。