如何配置MySQL从库为只读模式,启用read_only和super_read_only?
- 内容介绍
- 文章标签
- 相关推荐
本文共计710个文字,预计阅读时间需要3分钟。
很多用户为了从库执行以下命令:
如何正确启用双层只读:read_only + super_read_only
两者需同时开启才构成有效防护。顺序和方式很重要:
- 先确保主从复制正常运行(
SHOW SLAVE STATUS\G中Slave_IO_Running和Slave_SQL_Running均为Yes),再设置只读,否则可能中断 SQL 线程 - 执行顺序必须是:
SET GLOBAL read_only = 1→SET GLOBAL super_read_only = 1;反过来会报错(ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement) - 要持久生效,必须在配置文件(如
/etc/my.cnf)中显式写入:[mysqld] read_only = ON super_read_only = ON 仅靠
SET GLOBAL设置会在重启后丢失
super_read_only 启用后哪些操作会被拒绝
开启后,任何用户(包括 root)都无法执行写操作,除非临时禁用它。
本文共计710个文字,预计阅读时间需要3分钟。
很多用户为了从库执行以下命令:
如何正确启用双层只读:read_only + super_read_only
两者需同时开启才构成有效防护。顺序和方式很重要:
- 先确保主从复制正常运行(
SHOW SLAVE STATUS\G中Slave_IO_Running和Slave_SQL_Running均为Yes),再设置只读,否则可能中断 SQL 线程 - 执行顺序必须是:
SET GLOBAL read_only = 1→SET GLOBAL super_read_only = 1;反过来会报错(ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement) - 要持久生效,必须在配置文件(如
/etc/my.cnf)中显式写入:[mysqld] read_only = ON super_read_only = ON 仅靠
SET GLOBAL设置会在重启后丢失
super_read_only 启用后哪些操作会被拒绝
开启后,任何用户(包括 root)都无法执行写操作,除非临时禁用它。

