MySQL ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS报错怎么修复?
针对 MySQL ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS 报错修复的核心在于排查服务器组复制错误原因并恢复读写模式。远程处理时首先登录数据库检查全局只读状态若因复制错误导致自动只读需查看错误日志定位具体故障点。常见解决方法包括重启 MySQL 服务、在 MySQL Shell 中检查服务器组复制状态、修复磁盘空间不足问题或在确认数据一致后手动设置 SET GLOBAL read_only 0 恢复写入。若为主从同步错误可尝试跳过错误事务或重新配置同步关系确保服务器组以正常模式复制数据。MySQL Error number: MY-011712; Symbol: ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS; SQLSTATE: HY000 报错 故障修复MySQL Error number: MY-011712; Symbol: ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS; SQLSTATE: HY000 报错 故障修复 远程处理 文档解释 Error number: MY-011712; Symbol: ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS; SQLSTATE: HY000 Message: The server was automatically set into read only mode after an error was detected. 错误说明 MySQL ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS 错误全称为 Error Number: MY-011712; Symbol: ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS; SQLSTATE: HY000是 MySQL 数据库中服务器组复制处理过程出现差错时返回的可确定性异常。该异常通常伴随着 SQLSTATE: HY000表示一般性错误由于一般性错误导致该服务器组被设置为只读模式致使服务器组复制数据无法正常接收处理需要开发者手动检查及调整以保证服务器组以正常模式复制数据。MySQL 数据库突然变‘只读’了别慌5 分钟教你用 SET GLOBAL read_only 0 搞定当你正在处理线上业务时突然发现应用无法写入数据库日志中跳出The MySQLserveris running with the --read-only option的错误提示——这种突如其来的状况往往会让初级运维人员手足无措。本文将带你深入理解 MySQL 只读模式的触发机制并提供一套完整的应急处理方案。1. 理解 MySQL 只读模式的本质 MySQL 的 read_only 参数是一个全局变量当设置为 1 时会禁止普通账户执行任何修改数据的操作 (包括 INSERT、UPDATE、DELETE、CREATE 等),但具有 SUPER 权限的账户仍可正常写入。这种设计主要服务于以下几种场景主从复制环境从库通常设置为只读模式防止数据不一致 数据备份期间避免备份过程中数据被修改 系统维护窗口防止维护期间意外数据变更 磁盘空间不足自动触发保护机制 常见误触发原因运维人员手动设置后忘记恢复 自动化脚本错误配置 磁盘空间达到阈值自动触发 主从切换后配置未同步更新 重要提示修改 read_only 参数不会影响已经存在的连接会话只对新建立的连接生效。MySQL 主从同步错误恢复MySQL 主从同步集群在生成环境使用过程中如果主从服务器之间网络通信条件差或者数据库数据量非常大容易导致 MySQL 主从同步延迟。MySQL 主从产生延迟之后一旦主库宕机会导致部分数据没有及时同步至丛库重新启动主库会导致丛库与主库同步错误如何快速恢复主从同步关系呢如下有两种方法1、忽略错误后继续同步 (只有一次错误) 此种方法适用于主从库数据内容相差不大或者要求数据可以不完全统一的情况数据要求不严格的情况。Master 端执行如下命令将数据库设置全局读锁不允许写入新数据flush tables with read lock; Slave 端停止 Slave I/O 及 sql 线程同时将同步错误的 SQL 跳过 1 次跳过会导致数据不一致最后启动 start slave同步状态恢复命令如下stop slave; set global sql_slave_skip_counter 1; start slave; 2、重新做主从同步完全同步:(主从数据差别大) 此种方法适用于主从库数据内容相差很大或者要求数据完全统一的情况数据需完全保持一致。MySQL 疑难杂症 01:主机系统表损坏导致复制全部中断MySQL 备机的复制全部中断是非常危险的场景如果是 io_thread 异常因为开启了半同步直接会导致主机卡主如果是 sql_thread 异常也会导致备机延迟主备无法自动切换如果此时主机再故障则业务读写都会出现异常! 1. 故障现象 收到实例 A 复制延迟报警查看监控发现该实例所有备机复制都延迟了在备机上执行 代码语言:javascript AI 代码解释 show slave status\G; 发现 io_thread 正常但 sql_thread 异常中断Last_SQL_Error 是代码语言:javascript AI 代码解释 Query caused different errors on master and slave.Error on master:message(format)Invalid error codeerror code126;Error on slave:actual messageno error,error code0.Default database:.Query:drop user if exists testxx.xx.xx.xx 解析 binlog发现报错事务对应的 GTID 是xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx: 12018988743 查看主机报错日志代码语言:javascript AI 代码解释 [ERROR]/usr/local/mysql/bin/mysqld:Incorrect key filefortable./mysql/user.MYI;tryto repair it[ERROR]/usr/local/mysql/bin/mysqld:Incorrect key filefortable./mysql/user.MYI;tryto repair it[ERROR]Got an error from thread_id11,/export/home/pb2/build/sb_0-33648028-1555164244.06/mysql-5.7.26/storage/myisam/mi_delete.c:123FAQ遇到 ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS 错误首先要做什么首先应登录数据库检查全局只读状态并查看错误日志定位具体故障原因。如何手动解除数据库的只读模式使用具有 SUPER 权限的账户执行 SET GLOBAL read_only 0; 命令即可恢复写入。磁盘空间不足会导致此错误吗是的磁盘空间耗尽时 MySQL 会自动进入只读模式以保护数据需清理空间后恢复。