mysql中的read_only和super_read_only


在引入super_read_only之前,mysql提供了一个选项read_only。开启read_only之后,会阻止没有super权限的用户执行数据库更新操作。read_only主要用于复制节点。

super_read_only不仅会阻止普通用户,也会阻止具有super权限的用户对数据库写操作。



read_only和super_read_only是有关联的。默认二者都是关闭的:

·如果开启了super_read_only,即使用户有super权限,也会被禁止更新操作

·设置super_read_only=on,也就隐式地设置了read_only=on

·设置read_only=off,也就隐式地设置了super_read_only=off



即使设置read_only=on,mysql还支持以下的操作行为:

·如果是复制节点,replica线程执行update操作

·使用analyze table、optimize table语句。read only是为了避免对表结构或者内容进行修改。而这些命令不会。

·对temporary表进行操作

·向日志表(mysql.general_log、mysql.slow_log)插入记录

·mysql 5.7.16开始,更新performance schema表,比如update、truncate表操作

 

 

 

 

平时关注的大佬网站上,几天前突然慎重的介绍了一下super_read_only这个参数,搞的我以为有了什么重大改变或bug呢!贴一下以前的笔记吧。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM