5
回答
MYSQL Got an error reading communication packets
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

140801  9:30:35 [Warning] Aborted connection 8739907 to db: 'hive' user: 'moonbasa' host: '10.0.*.*' (Got an error reading communication packets)

MYSQL实例上面有几个库,其中一个库的链接一直出现这个warning。

查了防火墙,没有问题。

调整了max_allow_packet=256M。

奇怪的是,只有这个用户大量出现,其他的用户没有出现这个异常。

这个hive的用户,并不是什么高并发的系统。


求MYSQL大大指点一下,谢谢。。

举报
共有5个答案 最后回答: 3年前

应该不是max_allow_packet,如果是他的原因,客户端那边应该有Packet for query is too large的日志,并且不会是Aborted connection,请求包过大最多mysql是不认那个包,不会断开连接。

观察一下show global status like 'abort%';Aborted_clients 和 Aborted_connects 是否是变动剧烈。

另外找到使用这个用户的应用的日志,看看是否连接经常异常断开。排除网络原因外,如果是C的mysql连接包,是否忘了mysql_ping了(默认MYSQL_OPT_RECONNECT是禁用的)

--- 共有 4 条评论 ---
qingyunluck最近我们也遇到这个问题了,请问楼主这个问题最终如何解决的? 2年前 回复
逝水fox回复 @吐槽的达达仔 : 因为一般情况下数据库的用户名应该和具体的应用程序有关,相同的应用代码是用同一个用户连接数据库的,所以我猜测如果不是网络问题,那可能性就可能在程序本身上了。另外如果一个host abort connection太多,mysql有可能以后可能会用Host is blocked because of many connection errors拒绝连接的 3年前 回复
逝水fox回复 @吐槽的达达仔 : Aborted Connection一般出来的情况都是网络不好,客户端异常crash之类的,总之就是连接打开之后没有正常的关闭,具体你可以看下这里,http://dev.mysql.com/doc/refman/5.5/en/communication-errors.html 3年前 回复
吐槽的达达仔您的意思是说,很有可能和某一个客户端的连接有关系?? 事实上是这样的,只有一个客户端与MYSQL服务器不停地出现这个warning。 连在这个MYSQL 服务器上的别的用户,就没有这个问题。 3年前 回复

max_allow_packet=256M 

早期版本 默认 为1M。

改为256M的目的是?


--- 共有 1 条评论 ---
吐槽的达达仔网上有说max_allow_packet太小会产生服务器中断客户端连接的情况。其实调大一点点也没有关系。 max_allow_packet是装载客户请求的sql,通讯数据等。 我想会不会因为这个,才调整的。 3年前 回复
如果查詢出現MYSQL ERROR也會,比如delete data經常出現Foreign Key Constrain, 因為Parent Child 關係, 所以最好檢查一下是否DB 的數據在處理上經常出現這種. 這只是例子, 其他ERROR 也會引起ABORT
顶部