ITPub博客

【MySQL】log event entry exceeded

原创 Linux操作系统 作者:杨奇龙 时间:2013-01-12 22:08:52 0 删除 编辑
【问题背景】
在生产环境中的数据库master-err.log日志中显示
130111 20:48:07 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master', Error_code: 1236
130111 20:48:07 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.001017', position 108609133
【解决方法】
根据提示增加max_allowed_packet大小即可,当前的max_allowed_packet=200M.查看主库的mysql-bin.001017日志,大小为500M,解析出的日志为1.1G.

选择将max_allowed_packet调整为1G
在主库和备库分别执行
stop slave;
set global max_allowed_packet=1*1024*1024;
start slave;
问题解决!
【相关知识】
这里说说 max_allowed_packet 
mysql 服务是通过网络包来传输数据的(通信信息包是指发送至MySQL服务器的单个SQL语句或发送至客户端的单一行),mysql协议能够识别的数据包的大小是由max_allowed_packet控制的。
当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“log event entry exceeded max_allowed_packet;”错误,并关闭连接。就像此次主从复制遇到的,IO 进程从主库获取日志,但是单个日志中的sql 大小超过了max_allowed_packet的限制,于是报错,IO thread 进程停止,sql thread 显示为yes。 对于客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。
请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7424121