- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
如果我们单看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; --phpfensi.com
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越大越好,大家可根据自己人情况来设置.
售前咨询
售后咨询
备案咨询
二维码
TOP