MySQL 真假read_only

青旅半醒 2023-06-08 06:53 66阅读 0赞

在主从复制中,为了保护从库不被写入,往往会在从库设置set global read_only=on;
当打开read_only以后,MySQL不允许客户端用户修改任何数据,但除了拥有super权限的用户。也就是说read_only还不算完全地只读,最近差点踩了一个坑,在做迁移的时候,没注意到应用用户居然有all privilege权限,而在迁移过程中都是习惯性地把迁移从库设成read_only。好在及早发现,不然就造成数据双写了。
而需要限制拥有super权限用户写入数据,则需要设置set global super_read_only=on。当打开super_read_only,拥有super权限的用户尝试写入时会遇到以下报错:
ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement
super_read_only是自5.7.8引入的,5.7.8以下版本没有这个参数。另外这个参数可以在线开启或关闭,本人一度记错了是个静态参数。

而super_read_only和read_only有一些相关性,如果开了super_read_only,则read_only也会自动开启;如果关闭了read_only,那么super_read_only也会自动关闭。
而无论是开启哪个read_only,都不妨碍复制线程的正常运行,从库可以正常复制。

发表评论

表情:
评论列表 (有 0 条评论,66人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL 真假read_only

    在主从复制中,为了保护从库不被写入,往往会在从库设置set global read\_only=on; 当打开read\_only以后,MySQL不允许客户端用户修改任何数

    相关 JS Python真假判断

    问题 在看算法时,出现这样的问题(真假值判断问题) JS 需要求数组的长度 才能判断为 空数组(返回false) Python 不需要求数组的长度 就可以判

    相关 附件:真假上传

    新增的时候,上传存在前端一个list里面;删除是真删除,直接删除 编辑的时候,删除是假删除,把删除的数据id存在一个list里 ![watermark_type_ZHJva

    相关 【牛腩】-真假分页

    – – 分页在web程序中很常用。当从数据库中查询出数据,展示在界面上的时候,如果数量很大,就需要分页,一页一页地展示给用户。这时候就用到了分页。分页是在界面上的展示效果。所

    相关 命题真假

    A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束: 1. 如果A参加,B也参加;

    相关 Shell: readonly介绍

    1. 概念 `readonly`在shell脚本中,用来标记变量是只读的,后续执行过程中就不能对其值进行改变,这个用来定义一些常量类的变量. 如果对其进行重新赋值,会提示