文档章节

错误分析及解决办法---MySQL server has gone away

阿锋zxf
 阿锋zxf
发布于 2016/07/05 09:11
字数 513
阅读 4
收藏 0

应用程序(比如PHP)长时间的执行批量的MYSQL语句。执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。都容易引起MySQL server has gone away。 

今天遇到类似的情景,MySQL只是冷冷的说: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 

interactive_timeout = 2880000 

关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如: 

sql = "set interactive_timeout=24*3600"; 

mysql_real_query(...) 

2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理 

解决方案: 

在my.cnf文件中添加或者修改以下变量: 

max_allowed_packet = 10M(也可以设置自己需要的大小) 

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

本文转载自:http://www.cnblogs.com/smallmuda/archive/2012/05/26/2518975.html

共有 人打赏支持
阿锋zxf
粉丝 8
博文 107
码字总数 126016
作品 0
深圳
程序员
Zabbix错误提示MySQL server has gone away解决

Zabbix错误提示MySQL server has gone away解决 相信细心的同学在使用Zabbix的过程中,会遇到[Z3005] query failed: [2006] MySQL server has gone away 这个错误提示,虽然出现错误提示,但...

it你好
2016/01/10
0
0
sql文件导入时报错2006 – MySQL server has gone away

导SQL数据库结构+数据时,如果数据是批量插入的话会报错:2006 - MySQL server has gone away。 解决办法:找到你的mysql目录下的my.ini配置文件,加入以下代码 maxallowedpacket=500M wait...

山海经
2013/11/14
0
0
MySQL server has gone away问题解决方法

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。   解决方案:   在my.cnf文件中添加或者修改以下两个变量: waittimeout=2880000 interactiv...

于涛ns_天使
2013/02/05
0
0
使用mysql的长连接

使用mysql的长连接 有个资料看得我云里雾里的。现在用自己的言语来总结一下,写文字,能够加深自己的理解。也会在写的过程中帮助自己发现理解方面瑕疵,继续查资料求证。 短链接的缺点:创建...

蜗牛奔跑
2016/03/09
12
0
qihoo Atlas测试相关问题

以下是笔者在搭建完qihoo Atlas后测试中遇到的一些问题以及解决方案: 1、使用mysql连接mysql_proxy的工作接口时候出现如下提示: > mysql -uremotename -p -h127.0.0.1 -P 4040 Enter pass...

刘榴
2013/07/17
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

人生苦短:Python里的17个“超赞操作

人生苦短,我选Python”。那么,你真的掌握了Python吗? 1. 交换变量 有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如: # 输入 a = 5 b ...

糖宝lsh
41分钟前
4
0
咕泡-spring中常用设计模式概述

设计模式就是经验之谈,供后人借鉴,解决一些具有代表性的问题 设计模式来源于生活,反过来帮助我们更好生活 设计模式提升代码的可读性、可扩展性、维护成本、复杂业务问题 千万不要死记硬背...

职业搬砖20年
今天
2
0
day59-20180817-流利阅读笔记-待学习

假·照骗,真·社交焦虑 雪梨 2018-08-17 1.今日导读 发朋友圈之前,不少人为了展现更美好的生活状态会对照片加以“微调”,或是加个滤镜显得逼格更高,或是磨个皮瘦个脸拉个大长腿。现在,国...

aibinxiao
今天
19
0
OSChina 周五乱弹 —— 姑娘在这个节日里表白你接受么?

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Sharon啊:完全被这个小姐姐圈粉了,学两首她的歌去哈哈 分享王贰浪的单曲《往后余生(翻自 马良)》 《往后余生(翻自 马良)》- 王贰浪 手...

小小编辑
今天
949
16
为什么HashMap要自己实现writeObject和readObject方法?

为什么HashMap要自己实现writeObject和readObject方法? 如果你有仔细阅读过HashMap的源码,那么你一定注意过一个问题:HashMap中有两个私有方法。 private void writeObject(java.io.Objec...

DemonsI
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部