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变量)。

你可能感兴趣的