Error number: MY-011257; Symbol: ER_SYS_VAR_COMPONENT_VARIABLE_SET_READ_ONLY; SQLSTATE: HY000
Message: variable %s of component %s was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag.
。
MY-011257 (ER_SYS_VAR_COMPONENT_VARIABLE_SET_READ_ONLY)错误是MySQL系统变量设置只读的错误。
错误说明
当用户试图将MySQL变量设置为只读时,会出现此错误。此错误对应的消息如下:”Can’t set read only system variable ‘%s’ which is a constant in the context of ‘%s'”(无法将只读系统变量%s设置为该组件的常量上下文%s)
常见的案例
此错误的常见情况是当查询语句中设置MySQL变量为只读时,当试图使用以下查询语句设置系统变量pid_file为只读时会出现这个错误:
SET GLOBAL pid_file = “value”;
解决方法
由于这个错误与只读变量有关,因此要解决这个错误,可以尝试更改SQL查询,以更改被尝试设置为只读的变量为可读写状态。会话或全局变量模式也是可以更改的。因此,可以尝试使用以下查询语句来更改变量的可读写状态:
SET GLOBAL pid_file = “value”;
用户还可以尝试检查变量的当前只读/可读写状态,以确定是否可以更改变量的状态,可以使用以下查询来检查变量的状态:
SHOW VARIABLES LIKE ‘pid_file’;
另外,如果单纯仅仅是想要了解某个特定系统变量的当前状态,也可以使用MySQL官方文档来查看,在文档中,可以查看到特定系统变量的值,其中也包括该系统变量的只读/可读写状态。