MySQL数据库从库只读模式怎么开启_修改read_only参数实操指南

张开发
2026/4/12 9:53:39 15 分钟阅读

分享文章

MySQL数据库从库只读模式怎么开启_修改read_only参数实操指南
从库只读必须设 read_only 和 super_read_only仅 read_only 无法阻止 SUPER 用户写入super_read_only 才能真正禁止所有写操作且需配置正确顺序并配合权限管控与网络隔离。从库只读必须设 read_only但光设它不够只设 read_only ON 是最常见做法但它只拦普通用户——拥有 SUPER 权限的账号比如 root仍能执行 INSERT、CREATE FUNCTION、DROP TABLE 甚至 EVENT。这在主从同步场景下很危险万一运维误连从库并用 root 清了某张表binlog 不会记录主库不会同步数据就永久不一致了。临时启用重启失效SET GLOBAL read_only ON;永久生效需写进配置文件/etc/my.cnf 的 [mysqld] 段下加 read_only ON再 systemctl restart mysql检查是否生效SHOW VARIABLES LIKE read_only; 返回 ON 即成功super_read_only 才是真正兜底的只读开关super_read_only ON 在 MySQL 5.7.8 引入开启后连 SUPER 用户也无法写入连创建存储过程、触发器、EVENT 都被禁止——这才是“从库不该动”的完整语义。它和 read_only 是联动的super_read_only ON 会自动把 read_only 设为 ON反过来read_only OFF 也会强制关掉 super_read_only。动态启用需 SUPER 权限SET GLOBAL super_read_only ON;配置文件写法推荐super_read_only ON 必须放在 read_only ON 后面否则启动报错MySQL 8.0 支持 SET PERSIST super_read_only OFF 持久化关闭但生产环境不建议用写操作被拒时看到的错误不是配置失败而是正常保护从库设好只读后任何写操作都会立刻报错这不是故障是预期行为。典型错误信息是ERROR 1290 (HY000): The MySQL server is running with the read-only option so it cannot execute this statement。这个报错会出现在所有写类语句上包括 UPDATE、TRUNCATE、ANALYZE TABLE8.0 对系统表也生效甚至 CREATE TEMPORARY TABLE部分版本。 Cleanup.pictures 智能移除图片中的物体、文本、污迹、人物或任何不想要的东西

更多文章