MySQL Error number: MY-011307; Symbol: ER_XPLUGIN_MESSAGE_TOO_LONG; SQLSTATE: HY000 报错 故障修复 远程处理


文档解释

Error number: MY-011307; Symbol: ER_XPLUGIN_MESSAGE_TOO_LONG; SQLSTATE: HY000

Message: %s: Message of size %u received, exceeding the limit of %i

错误说明:

MY-011307 ER_XPLUGIN_MESSAGE_TOO_LONG 是MySQL中的一个错误,它指示当尝试传递X插件协议消息时,消息大小超出了最大限制。它所允许的大小也受MySQL服务器器配置及其版本的限制。

常见案例

当您尝试从MySQL客户端发送大量数据到服务器时,ER_XPLUGIN_MESSAGE_TOO_LONG 错误可能会发生。它可能也会出现在尝试执行带有特殊字符的特定长度的SQL语句时,因为以下字符有可能被认为是正在使用的X插件的分隔符:

解决方法:

首先,应该检查有没有设置X插件协议的消息大小限制,如果被设置了,就应该放宽这个消息大小限制来解决ER_XPLUGIN_MESSAGE_TOO_LONG错误。可以通过以下命令修改其值:

SET GLOBAL xsha512_message_max_bytes = value;

如果这不起作用,可以尝试修改以下配置选项:

max_allowed_packet – 这个属性用来设置最大的单次MySQL通信消息大小,不会超过1GB。

net_buffer_length – 它可以用来设置连接池中网络缓冲区的大小。默认的大小为16384 bytes,但可以修改为更大的值(推荐最大16MB)。

另外,也可以尝试添加STRICT_TRANS_TABLES和NO_ENGINE_SUBSTITUTION选项到MySQL服务器配置中来避免此错误。