文档章节

MySQL server has gone away的解决方案

0-1
 0-1
发布于 2013/03/25 23:36
字数 496
阅读 55
收藏 0

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 参数的作用是,用来控制其通信缓冲区的最大长度。
可能有很多人遇到过标题中的这个错误。之前我们也经常遇到,一直没有认真找是什么原因。今天花了些时间google了下。原来,这个问题并不是MySQL的bug, 它本质是一个配置问题, 解决起来也不麻烦。

在Mysql客户端中, 通过 SHOW VARIABLES; 语句可以查看Mysql系统变量。这些变量中名为 wait_timeout 的变量的值过于小,就是造成这个错误的根源。这个变量的含义是:如果在该连接在 wait_timeout 时间内没有进行任何查询(idle时间超时), 服务器将自动关闭这个连接。

如果你的脚本在执行了一个查询之后,接着是另外一个很耗时的没有任何数据库查询的操作(超过了wait_timeout设置的值,单位是秒), 之后你再进行数据库操作,就一定会遇到标题所示的错误。

我的解决方案是,在必要的地方,数据库连接之后,立刻执行一句”SET SESSION wait_timeout=65535″。

本文转载自:

共有 人打赏支持
0-1

0-1

粉丝 92
博文 268
码字总数 145989
作品 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
swoole项目思维转换 -- mysql server gone away

mysql做为php的黄金搭档和互联网上应用最广泛的数据库,免不了天天与之打交道,不少朋友在熟悉swoole的使用之后,也趟平了不少坑,准备实战了,终于上线了,正愉快的体验swoole带来的巨大改进...

杨太化
2015/10/15
182
0
MySQL server has gone away问题解决方法

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

于涛ns_天使
2013/02/05
0
0
解决MySQL server has gone away

针对MySQL server has gone away,大概浏览了一下,主要可能是因为以下几种原因: 一种可能是发送的SQL语句太长,以致超过了maxallowedpacket的大小,如果是这种原因,你只要修改my.cnf,加大...

durban
2012/05/22
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

没有更多内容

加载失败,请刷新页面

加载更多

shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

10月15日任务 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 cut 命令 cut作用:截取字符串 用法如下:cat /etc/passwd |head -2 |cut -d ...

hhpuppy
12分钟前
0
0
Springboot实现filter拦截token验证和跨域

背景 web验证授权合法的一般分为下面几种 1使用session作为验证合法用户访问的验证方式 使用自己实现的token 使用OCA标准 在使用API接口授权验证时,token是自定义的方式实现起来不需要引入其...

funnymin
46分钟前
1
0
linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
今天
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
13
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部