MySQL如何设置禁止写入:快速实现数据库只读模式
要禁止MySQL数据库的写入操作,最直接的方法是通过设置全局系统变量read_only为ON,使数据库进入只读模式,这一设置能有效防止数据被意外修改或删除,适用于维护、备份或数据迁移等场景,以下是具体操作步骤和注意事项:

-
启用只读模式
在MySQL服务器上执行以下命令:SET GLOBAL read_only = ON;
此操作会立即生效,但仅影响普通用户账户,具有
SUPER权限的用户(如root)仍可写入。 -
确保复制环境兼容
若数据库为主从复制中的主库,需同时设置:SET GLOBAL super_read_only = ON;
该设置会连同事先启用
read_only,禁止所有用户(包括超级用户)的写入,避免复制冲突。 -
永久配置
如需重启后仍保持只读,需在配置文件my.cnf(或my.ini)中添加:[mysqld] read_only = 1 super_read_only = 1
-
验证与恢复写入
通过尝试写入操作(如INSERT)测试是否生效,恢复写入时,反向执行上述命令,将变量值设为OFF即可。
注意事项:
- 只读模式不影响现有连接的权限,新连接会立即受限。
- 对InnoDB等事务引擎,设置前需提交或回滚所有未完成的事务,避免锁冲突。
- 在高可用架构中,建议结合数据库代理(如ProxySQL)或云平台控制台操作,减少对服务的直接影响。
通过灵活运用read_only与super_read_only,可安全、高效地管理MySQL的写入权限,保障数据稳定性。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/16606.html发布于:2026-09-13





