MySQL出现ERROR : (2006, ‘MySQL server has gone away’) 的问题意思就是指client和MySQL server之间的链接断开了。

造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert … values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入)。

产生这个问题的原因有很多,总结下网上的分析:

原因一: MySQL 服务宕了

判断是否属于这个原因的方法很简单,进入mysql控制台,查看mysql的运行时长

mysql> show global status like ‘uptime’;
±--------------±--------+
| Variable_name | Value |
±--------------±--------+
| Uptime | 3414707 |
±--------------±--------+

1 row in set或者查看MySQL的报错日志,看看有没有重启的信息

如果uptime数值很大,表明mysql服务运行了很久了。说明最近服务没有重启过。
如果日志没有相关信息,也表名mysql服务最近没有重启过,可以继续检查下面几项内容。

原因二: mysql连接超时

即某个mysql长连接很久没有新的请求发起,达到了server端的timeout,被server强行关闭。
此后再通过这个connection发起查询的时候,就会报错MySQL server has gone away。

mysql> show global variables like ‘%timeout’;
±---------------------------±---------+
| Variable_name | Value |
±---------------------------±---------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |xuyao
±---------------------------±---------+
10 rows in set

wait_timeout和interactive_timeout都是28800秒(8小时),即mysql链接在无操作28800秒后被自动关闭

修改办法:
同时修改这两个参数的值,注意是都要修改。具体修改方法请看MySQL 参数设置

原因三: mysql请求链接进程被主动kill

这种情况和原因二相似,只是一个是人为一个是MYSQL自己的动作

mysql> show global status like ‘com_kill’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| Com_kill | 21 |
±--------------±------+
1 row in set原因四. Your SQL statement was too large.

当查询的结果集超过 max_allowed_packet 也会出现这样的报错。定位方法是打出相关报错的语句。

用select * into outfile 的方式导出到文件,查看文件大小是否超过 max_allowed_packet ,如果超过则需要调整参数,或者优化语句。

mysql> show global variables like ‘max_allowed_packet’;
±-------------------±--------+
| Variable_name | Value |
±-------------------±--------+
| max_allowed_packet | 1048576 |
±-------------------±--------+
1 row in set (0.00 sec)

修改参数:

mysql> set global max_allowed_packet=1024102416;
mysql> show global variables like ‘max_allowed_packet’;
±-------------------±---------+
| Variable_name | Value |
±-------------------±---------+
| max_allowed_packet | 16777216 |
±-------------------±---------+
1 row in set (0.00 sec)

MySQL error(2006) server has gone away相关推荐

  1. Starting MySQL... ERROR! The server quit without updating PID file 问题解决

    Starting MySQL... ERROR! The server quit without updating PID file 问题解决 参考文章: (1)Starting MySQL... E ...

  2. 启动MySQL出错: Starting MySQL….. ERROR! The server quit with

    启动MySQL出错: Starting MySQL-.. ERROR! The server quit with (2013-02-19 17:25:17) 转载▼ 标签: mysql error m ...

  3. Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/vm10-0-0-19

    输入:service mysqld start 报错: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/ ...

  4. MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解决办法

    1 问题 [root@localhost mysql]# /etc/rc.d/init.d/mysql status MySQL is not running, but lock file (/var ...

  5. Mysql 启动报错解析:Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/dat

    现象: root@centos74 ~]# service mysqld start Starting MySQL.. ERROR! The server quit without updating ...

  6. mysql服务启动失败 Starting MySQL. ERROR! The server quit without updating PID file

    [问题描述] 使用 service mysqld start 启动mysql服务失败,提示 Starting MySQL. ERROR! The server quit without updatin ...

  7. MySQL.. ERROR! The server quit without updating PID file问题解决

    MySQL.. ERROR! The server quit without updating PID file问题解决 参考文章: (1)MySQL.. ERROR! The server quit ...

  8. 解决 Starting MySQL ERROR The server quit without updating PID file

    服务器断电重启后mysql启动报错,记录一下解决方案 环境 mysql版本 5.7.21 服务器 Red Hat Enterprise Linux Server release 7.6 (Maipo) ...

  9. 已解决Starting MySQL... ERROR The server quit without updating PID file

    Linux服务器重启后启动MySQL报错,错误信息如下: Starting MySQL... ERROR! The server quit without updating PID file (/us ...

  10. linux下mysql启动 Starting MySQL. ERROR! The server quit without updating PID file(xxx/x.pid)

    linux下mysql启动 Starting MySQL. ERROR! The server quit without updating PID file(xxx/x.pid) service my ...

最新文章

  1. 8086 c语言,2016年上海大学机电工程与自动化学院微机硬件及软件(包含8086微机和C语言)之C程序设计考研复试题库...
  2. 树莓派 Ubuntu mate 18.04 下开启vncserver
  3. [SOJ] connect components in undirected graph
  4. 取 Oracle Schema信息
  5. 源码学习之RunWith annotation used in JUnit debug
  6. java se开发_JAVA_SE基础——3.Java程序的开发流程
  7. 让51单片机八段数码管亮起来(静态显示和动态显示、共阴极和共阳极、位码和段码)
  8. Java-虚拟机-常量池的表现方式
  9. c模拟linux进程管理课程设计,操作系统课程设计(三):Linux进程管理
  10. php定位并且获取天气信息
  11. 套料排版代码python_XSuperNEST全自动套料解决方案
  12. StyleWriter英文润色软件使用说明(含破解安装包)
  13. 抖音短视频去水印方法 2018短视频伪原创
  14. 快门光圈感光度口诀_只要三杯水,就能搞懂光圈/快门/感光度的关系!
  15. 002java面试笔记——【java基础篇】从团800失败面试总结的java面试题
  16. html的网页制作需要哪些知识,网页制作之HTML基础知识
  17. 雀巢“可持续发展列车”驶入瑞士驻华大使馆
  18. 俞敏洪在清华终于说实话了·····
  19. asp毕业设计——基于Delphi+udp+UDP的基于局域网的信息收发系统设计与实现(毕业论文+程序源码)——教务信息管理系统
  20. Java Web编程

热门文章

  1. convert py to pyd
  2. 纯干货!如何做一个成功的大数据项目
  3. React Native编译错误:ReactAndroid:buildReactNdkLib FAILED
  4. Broken Keyboard(悲剧文本)
  5. WINDOWS2003超级作用域
  6. Page.Validate()方法
  7. 20.变量及数据类型
  8. 35. Element title 属性
  9. Android中设置显示文本,TextView控件的使用(Android设置文本显示格式)
  10. Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)