mysql read_only

 show variables like '%read_only%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_read_only      | OFF   |
| read_only             | OFF   |
| super_read_only       | OFF   |
| transaction_read_only | OFF   |
| tx_read_only          | OFF   |
+-----------------------+-------+
5 rows in set (0.00 sec)

super_read_only

super_read_only 是 MySQL 中的一个系统变量,用于限制超级用户(具有 SUPER 权限)的读写权限。当 super_read_only 设置为 1 时,超级用户只能进行只读操作,无法执行写入或修改数据的操作。

该变量的作用是为了保护数据库的数据完整性和安全性,防止误操作或恶意操作对数据库造成损坏或数据丢失。

以下是如何设置和使用 super_read_only 的示例:

  1. 检查当前 super_read_only 的值:

    SELECT @@super_read_only;
    
  2. 设置 super_read_only 的值为 1:

    SET GLOBAL super_read_only = 1;
    
  3. 检查是否成功设置为只读模式:

    SELECT @@super_read_only;
    

请注意,设置 super_read_only 需要超级用户权限或 root 权限。确保在执行此类操作时谨慎操作,并仔细考虑对数据库的影响。

read_only

在 MySQL 中,超级用户(具有 SUPER 权限)默认情况下是可以在备库(Slave)上进行写操作的。这是因为 MySQL 的主从复制架构中,备库会从主库接收并复制主库上的事务日志(binlog),从而实现数据的同步。

虽然备库上的写操作是允许的,但一般情况下并不建议在备库上执行写操作。备库通常被用作主库的冗余备份或用于读取目的,以分担主库的读负载。如果在备库上执行写操作,可能会导致数据不一致性或主从同步的中断。

为了确保主从同步的完整性和数据一致性,通常建议将写操作限制在主库上,而将备库配置为只读(read-only)模式。在只读模式下,备库仅用于读取数据,无法执行写操作。

要将备库设置为只读模式,可以在备库的 MySQL 配置文件中添加以下配置:

read_only = 1

然后重启备库以使配置生效。这样就可以防止超级用户在备库上执行写操作。

需要注意的是,有些特殊情况下可能需要在备库上执行写操作,例如在主库不可用或维护期间进行紧急修复。在这种情况下,确保在进行写操作之前评估风险,并采取适当的措施来避免数据不一致性和主从同步的问题。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值