MySQL Server has gone away报错原因汇总
原因一: MySQL 服务宕了
判断是否属于这个原因的方法很简单,执行以下命令,查看mysql的运行时长:
$ mysql -uroot -p -e "show global status like 'uptime';"
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Uptime | 68928 | +---------------+-------+ 1 row in set (0.04 sec)
或者查看MySQL的报错日志,看看有没有重启的信息:
$ tail /var/log/mysql/error.log 130101 22:22:30 InnoDB: Initializing buffer pool, size = 256.0M 130101 22:22:30 InnoDB: Completed initialization of buffer pool 130101 22:22:30 InnoDB: highest supported file format is Barracuda. 130101 22:22:30 InnoDB: 1.1.8 started; log sequence number 63444325509 130101 22:22:30 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 130101 22:22:30 [Note] - '127.0.0.1' resolves to '127.0.0.1'; 130101 22:22:30 [Note] Server socket created on IP: '127.0.0.1'. 130101 22:22:30 [Note] Event Scheduler: Loaded 0 events 130101 22:22:30 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.28-cll' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
如果uptime数值很大,表明MySQL服务运行了很久了,说明最近服务没有重启过。 如果日志没有相关信息,也说明MySQL服务最近没有重启过,可以继续检查下面几项内容。
原因2:连接超时
如果程序使用的是长连接,则这种情况的可能性会比较大。 即某个长连接很久没有发起新的请求,达到了server端的time out,被server强行关闭。此后再通过这个client发起查询的时候,就会报错server has gone away。
$ mysql -uroot -p -e "show global variables like '%timeout';"
+----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | connect_timeout | 30 | | 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 | +----------------------------+----------+
mysql> SET SESSION wait_timeout=5;
#Wait 10 second
smysql> SELECT NOW(); ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 132361 Current database: *** NONE ***
+---------------------+ | NOW() | +---------------------+ | 2013-01-02 11:31:15 | +---------------------+ 1 row in set (0.00 sec)
原因3: 进程在server端被主动kill
这种原因和第2种原因比较相似,只是发起者是DBA,或者其他job,发现有长时间的慢查询执行kill xxx导致。
$ mysql -uroot -p -e "show global status like 'com_kill'"
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_kill | 0 | +---------------+-------+
原因4: 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=1024*1024*16;
mysql> show global variables like 'max_allowed_packet'; +--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 16777216 | +--------------------+----------+ 1 row in set (0.00 sec)
MySQL Server has gone away报错原因汇总相关推荐
- MySQL server has gone away报错原因分析及解决办法
原因1. MySQL 服务宕了 判断是否属于这个原因的方法很简单,执行以下命令,查看mysql的运行时长 $ mysql -uroot -p -e "show global status l ...
- MySQL server has gone away报错原因分析
原因1. MySQL 服务宕了 判断是否属于这个原因的方法很简单,执行以下命令,查看mysql的运行时长 $ mysql -uroot -p -e "show global status l ...
- mysql 长连接 has gone away_MySQL server has gone away报错原因分析/
在平时和开发的交流 以及 在论坛回答问题的或称中会发现这个问题被问及的频率非常高. 程序中报错: MySQL server has gone away 是什么意思? 如何避免? 因此,感觉有必要总结一 ...
- mysql away_MySQL server has gone away报错原因分析
在执行一个sql文件时mysql -h 127.0.0.1 -uroot study -e"source b.sql",报错MySQL server has gone away.上 ...
- 地图相关应用系统部署到现场报错原因汇总
文章目录 开发环境 问题现象 原因汇总 开发环境 1. 地图服务器:ArcGIS Server 10.3 2. 地图客户端: ArcGIS Destop 10.3 3. 数据库: Oracle 11g ...
- Mysql增加传输数据量或连接时间,防止mysql server has gone away报错
首先登录进mysql: mysql -u root -p 这个需要修改数据库配置的权限 修改数据传输量 默认是1M的数据量,数据量过大时会不够用,因此增加阈值,如下代码为100M show varia ...
- mysql unknown variable basedir_mysql登陆报错mysql: unknown variable 'basedir=
mysql登陆报错mysql: unknown variable 'basedir= 发布时间:2020-08-10 13:01:16 来源:ITPUB博客 阅读:67 作者:feelpurple 使 ...
- 搭建Mysql双主双从报错The slave I/O thread stops because master and slave have equal MySQL server UUIDs(已解决)
搭建Mysql双主双从报错The slave I/O thread stops because master and slave have equal MySQL server UUIDs 具体问题 ...
- MySQL报错原因:ERROR 1292 (22007): Incorrect date value: ‘1988‘ for column ‘birthday‘ at row 1
想插入一条记录,里面包含日期记录,但是报错了. 报错原因:在插入date数据类型的值时,日期外面要加上引号. 报错代码: insert into db_student(name,age,sex,bir ...
最新文章
- LINUX UMASK详解
- 小波变换如何去噪的思想
- java文件拷贝时 buff给多大合适_Java复制文件
- 计算机基础及wps office应用_自考本科计算机应用基础考试大纲
- SQL Cookbook:二、查询结果排序(1)以指定的次序返回查询结果
- 15什么时候你最想打人
- Android Studio第一个NDK程序
- 下载安装谷歌浏览器插件
- 如何开启BBR算法优化ss
- 第五章 项目范围管理
- 第四章-2 hydra(九头蛇)与Medusa(美杜莎)
- 计算机网络教室财产登记表,固定资产清查登记表-资产管理.DOC
- Java8 jvm参数
- 计算机内存不足16g内存,win10 16g内存显示内存不足怎么办_win10 16g内存显示可用7.95g如何恢复...
- Tableau制作全球电影数据分析/全球超市利润混合地图
- Android使用SoundPool播放音效实例详解
- rand()函数和 srand()函数的用法
- 开源配置管理系统的选择和搭建
- [答学员问】对于低学历的我,想找一个培训机构学习Linux网络运维,哪个培训机构教学稍微好一点呢?
- Java编写程序实现计算租赁价
热门文章
- 数据库元数据数据字典查询_1_列出模式中所有的表
- android 实现定时通知,在Android中创建定时通知(例如,针对事件)
- 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
- Fast R-CNN论文详解
- CentOS常用环境配置(MySQL、jdk、Redis、Nginx)
- 《js高程》 基本概念 上
- 阿里云Redis (安装包安装篇)
- 利用jquery的qrcode.js插件生成二维码的两种方式的使用
- [SOJ]连通性问题
- Debian 7.1.0 安装教程图解(——Debian系统轻量级快速安装法)