MySQL server has gone away问题原因

mdwtsqagp

mdwtsqagp

2016-02-19 15:27

想要天天向上,就要懂得享受学习。图老师为大家推荐MySQL server has gone away问题原因,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

  今天遇到类似的情景,MySQL只是冷冷的说:MySQL server has gone away。

  大概浏览了一下,主要可能是因为以下几种原因:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  一种可能是发送的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
参数的作用是,用来控制其通信缓冲区的最大长度

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

MySQL server has gone away问题原因

编程语言 网络编程
MySQL server has gone away问题原因

MySQL server has gone away错误提示解决方法

编程语言 网络编程
MySQL server has gone away错误提示解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

mysql问题

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
mysql问题

mysql proxy问题

编程语言 网络编程
mysql proxy问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Sql Server datetime问题

编程语言 网络编程
Sql Server datetime问题

JDBC 连接MySQL 问题

编程语言 网络编程
JDBC 连接MySQL 问题

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

linux下MYSQL常见两个错误的解决办法

linux下MYSQL常见两个错误的解决办法

Query was empty是什么错误

Query was empty是什么错误
下拉加载更多内容 ↓