深入MySQL--read_only和super_read_only参数的区别?

本帖最后由 lee 于 2020-9-2 21:03 编辑

在MySQL中,从库经常会被设置成为read_only属性,来防止数据的写入,在开启gtid的情况下,如果我们看到从库上面有多个GTID值,然后其中一个GTID的uuid和从库的uuid一致,那就可以判断,这个从库曾经出现过写入,可能需要校验从库和主库的数据一致性。

   类似read_only参数,还有一个super_read_only的参数,这两个参数之间有些细微的关系,今天在这里罗列一下:

1、read_only参数和super_read_only参数默认都是关闭的,read_only参数设置为on的情况下,会组织客户端的更新,但是如果一个账号拥有super权限,那么还是可以进行更新的。而super_read_only会阻止所有的客户端更新,即使客户端拥有super权限也不可以。

2、设置super_read_only参数为on会默认联动的设置read_only为on

3、设置read_only参数为off,会默认联动设置super_read_only为off

  1. mysql> show variables like '%read_only%';
  2. +-----------------------+-------+
  3. | Variable_name         | Value |
  4. +-----------------------+-------+
  5. | innodb_read_only      | OFF   |
  6. | read_only             | OFF   |
  7. | super_read_only       | OFF   |
  8. | transaction_read_only | OFF   |
  9. +-----------------------+-------+
  10. 4 rows in set (0.00 sec)

  11. mysql> set global super_read_only=on;
  12. Query OK, 0 rows affected (0.00 sec)

  13. mysql> show variables like '%read_only%';
  14. +-----------------------+-------+
  15. | Variable_name         | Value |
  16. +-----------------------+-------+
  17. | innodb_read_only      | OFF   |
  18. | read_only             | ON    |
  19. | super_read_only       | ON    |
  20. | transaction_read_only | OFF   |
  21. +-----------------------+-------+
  22. 4 rows in set (0.01 sec)

  23. mysql> set global read_only=off;
  24. Query OK, 0 rows affected (0.00 sec)

  25. mysql> show variables like '%read_only%';
  26. +-----------------------+-------+
  27. | Variable_name         | Value |
  28. +-----------------------+-------+
  29. | innodb_read_only      | OFF   |
  30. | read_only             | OFF   |
  31. | super_read_only       | OFF   |
  32. | transaction_read_only | OFF   |
  33. +-----------------------+-------+
  34. 4 rows in set (0.00 sec)
复制代码


游客,如果您要查看本帖隐藏内容请回复
标签: 暂无标签
lee

写了 75 篇文章,拥有财富 290,被 8 人关注

转播转播 分享分享 分享聚知识
回复

使用道具

成为第一个吐槽的人

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈