MySQL Error number: 4156; Symbol: ER_CANT_CHANGE_SYS_VAR_IN_READ_ONLY_MODE; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: 4156; Symbol: ER_CANT_CHANGE_SYS_VAR_IN_READ_ONLY_MODE; SQLSTATE: HY000
Message: Cannot change the ‘%s’ system variable in read-only mode.
错误说明:
ER_CANT_CHANGE_SYS_VAR_IN_READ_ONLY_MODE是MySQL的一条错误消息,当在只读模式下尝试改变一个系统变量时(比如改变max_connections参数),就会出现这条错误信息。这意味着MySQL无法完成期望的某个操作,因为只读模式的存在。
常见案例
在MySQL的只读模式下,企图对系统变量进行修改(可能是使用语句SET GLOBAL或者SET SESSION)就有可能产生此错误。此错误也可能在另外一些操作(比如FLUSH TABLES WITH READ LOCK)中出现。
解决方法:
如果真的需要改变某个系统变量,可以做的有以下两种解决方法:
1. 从只读模式中恢复出来,再尝试修改。可以使用只读模式的指令SET GLOBAL READ_ONLY=0或者使用SET GLOBAL TRANSACTION ISOLATION LEVEL改变只读模式的隔离级别,以便禁止只读模式。
2. 也可以尝试在连接READ_ONLY模式的会话中改变系统变量:除了IMMUTABLE变量之外,就算在只读模式也能够改变有些变量(比如当前会话的sql_log_off变量)。