百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> General error: 2006 MySQL server has gone away
分享文章到:

General error: 2006 MySQL server has gone away

发布时间:01/15 来源: 浏览: 关键词:
如果我们单看mysql提示MySQL server has gone away就是由于种种原因导致mysql当机了,导致MySQL server has gone away的原因有很多种,下面我来总结一下。

我自己人的经历

先简单介绍一下这个新手卡录入后台,这个后台是提供给产品人员使用。可以向某个游戏的某个特定分区批量录入新手卡信息,方便玩家获取。后台设置的一次性最大录入量为500。

先看日志吧,报错的内容和日志的相同:

Error: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away


这个错误信息很好的描述了是数据库超时引起的。以前听前辈说过,应该是wait_timeout环境变量设置的有问题。可是查看后,发现wait_timeout设的好高啊,为28800,不应该出问题啊。无解。

头回来后,诉说。头笑而不语,让我只看,别说话。

 代码如下


show global variables;

set global wait_timeout = 120;


总结解决了,但很多MySQL server has gone away都与此问题无关了,都有和max_allowed_packet有关了

导入数据库的时候 SQLyog 报错了

Error Code: 2006 – MySQL server has gone away

搜了下,说是max_allowed_packet (MySQL的一个参数)设置的值不够大。

那我改下就行了 嘿嘿

In Windows:

In the MySQL server installation directory,
in my.ini file, add the following line under [mysqld] in SERVER SECTION.

max_allowed_packet = 16M

In Linux:

Copy the my-xxx.cnf file from /usr/share/mysql to /etc as my.cnf

xxx can be small, medium, large, huge … depending on the requirement.

 代码如下

$ cp /usr/share/mysql/my-xxx.cnf /etc/my.cnf

In the my.cnf file, change the default
max_allowed_packet = 1M
to
max_allowed_packet = 16M

Save the file and restart MySQL server.

今天导入.sql文件时出现了Error Code: 2006 – MySQL server has gone away错误,原来是导入的sql文件大于系统默认的max_allowed_packet的值,查了很多修改配置文件的,但是没有找到my.cfg文件,修改其他文件不管用,所以直接使用sql语句来修改:

 代码如下

SET GLOBAL  max_allowed_packet=67108864;

就可以了,不是max_allowed_packet越大越好哦,大家可根据自己人情况来设置。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有2人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板