goneaway:MySQL server has gone away错误提示解决思路方法

大概浏览了主要可能是以下几种原因:
种可能是发送SQL语句太长以致超过了max_allowed_packet大小如果是这种原因你只要修改my.cnf加大max_allowed_packet值即可
还有种可能是某些原因导致超时比如说中获取数据库连接时采用了Singleton做法虽然多次连接数据库但其实使用都是同个连接而且中某两次操作数据库间隔时间超过了wait_timeout(SHOW STATUS能看到此设置)那么就可能出现问题最简单处理方式就是把wait_timeout改大当然你也可以在里时不时顺手mysql_ping这样MySQL就知道它不是个人在战斗
解决MySQL server has gone away
1、应用(比如PHP)长时间执行批量MYSQL语句最常见就是采集或者新旧数据转化
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
eractive_timeout = 2880000  
有关两个变量具体介绍说明可以google或者看官方手册如果不能修改my.cnf则可以在连接数据库时候设置CLIENT_INTERACTIVE比如:
sql = " eractive_timeout=24*3600";
mysql_real_query(...)
2、执行个SQL但SQL语句过大或者语句中含有BLOB或者longblob字段比如图片数据处理
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M
(也可以设置自己需要大小)
max_allowed_packet
参数作用是用来控制其通信缓冲区最大长度
Tags:  mysqlserver6.0 mysqlserver5.0 mysqlserver goneaway

延伸阅读

最新评论

发表评论