mysql如何配置从库只读_mysql从库只读设置方法

来源:这里教程网 时间:2026-02-28 20:26:19 作者:

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 = ON
super_read_only = ON
保存后重启MySQL服务生效:

systemctl restart mysql

注意:super_read_only依赖于read_only,若read_only未开启,super_read_only也无法启用。

3. 验证只读状态

登录MySQL执行以下命令检查:

SHOW VARIABLES LIKE 'read_only';

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,能有效保障主从架构的数据一致性。

相关推荐

热文推荐