设置MySQL从库为只读可防止数据不一致,通过SET GLOBAL read_only = ON临时启用,或在配置文件中添加read_only和super_read_only = ON实现持久化,后者需重启生效;super_read_only依赖read_only开启,可阻止超级用户写入;通过SHOW VARIABLES验证状态,写操作将报错1290;维护时可临时关闭,完成后恢复,确保主从数据一致性。

MySQL从库设置为只读,主要是为了防止误操作导致数据不一致。在主从复制环境中,从库默认不应该写入数据,通过开启只读模式可以有效避免人为或程序错误写入。
1. 临时开启只读模式(重启失效)
通过SQL命令动态设置从库为只读:
SET GLOBAL read_only = ON;
该命令立即生效,但MySQL服务重启后会失效,需配合配置文件使用以持久化。
如果从库有超级用户(如root),还需启用super_read_only防止特权用户写入:
SET GLOBAL super_read_only = ON;
super_read_only开启后,即使拥有SUPER权限的用户也无法写入,确保更高安全性。
2. 永久配置只读(通过配置文件)
编辑MySQL配置文件 my.cnf 或 my.ini(Linux通常位于 /etc/my.cnf):
在 [mysqld] 段落下添加:
[mysqld]read_only = ONsuper_read_only = ON
保存后重启MySQL服务生效:
systemctl restart mysql
注意:super_read_only依赖于read_only,若read_only未开启,super_read_only也无法启用。
3. 验证只读状态
登录MySQL执行以下命令检查:
SHOW VARIABLES LIKE ‘read_only’;
Seede AI
AI 驱动的设计工具
586 查看详情
SHOW VARIABLES LIKE ‘super_read_only’;
返回值为ON表示已启用。尝试在从库执行写操作(如INSERT、UPDATE)应提示错误:
ERROR 1290 (HY000): The MySQL server is running with the read-only option so it cannot execute this statement
4. 特殊情况处理
某些场景下需要临时关闭只读(如维护):
SET GLOBAL read_only = OFF;
SET GLOBAL super_read_only = OFF;
操作完成后建议重新开启。若从库需要作为其他从库的主库(级联复制),也应保持只读,除非明确需要写入。
基本上就这些。合理配置read_only和super_read_only,能有效保障主从架构的数据一致性。
以上就是mysql如何配置从库只读_mysql从库只读设置方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1068815.html
微信扫一扫
支付宝扫一扫