• 博客访问: 7356417
  • 博文数量: 1016
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-07 13:14
个人简介

MySQL DBA NoSQL DEVOPS

文章分类

全部博文(1016)

分类: Linux操作系统

2013-01-12 22:08:52

【问题背景】
在生产环境中的数据库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服务器的连接”错误。
阅读(9633) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册