文档章节

错误分析及解决办法---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
博文 144
码字总数 151794
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)

描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。 如何反序列化或序列化二叉树是没有限制的,你...

honeymose
52分钟前
4
0
java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
23
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
18
0
my.ini

1

architect刘源源
今天
16
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部