教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 解决ERROR 2006 (HY000) at line XX: MySQL server has gone away问题

解决ERROR 2006 (HY000) at line XX: MySQL server has gone away问题

发布时间:2017-12-08   编辑:jiaochengji.com
教程集为您提供解决ERROR 2006 (HY000) at line XX: MySQL server has gone away问题等资源,欢迎您收藏本站,我们将为您提供最新的解决ERROR 2006 (HY000) at line XX: MySQL server has gone away问题资源
MySQL server has gone away就是服务器去了的意思,那么你的mysql数据库提示MySQL server has gone away了我们主要不是看这个是看什么导致它去了哦,下面来看看吧。
今天有在解决公司一个客户网站迁移VPS主机的时候导入数据库出现"ERROR 2006 (HY000) at line 534: MySQL server has gone away"的错误提示问题,一般这样的问题会发生在数据库过大,而且配置文件可能限制最大数据库文件导致的,顺带把解决方法记录下来,以便于下次有使用的时候直接解决。

第一、找到my.cnf文件

根据不同的服务器配置WEB环境,找到当前服务器中的my.cnf文件,然后需要编辑和修改里面的配置参数。

第二、修改max_allowed_packet配置参数

修改max_allowed_packet配置参数

修改mysqld和mysqldump中两处max_allowed_packet参数,尽量将后面的加大一些。

第三、添加wait_timeout

我们需要在上面截图中的MYSQLD中添加一行wait_timeout = 6000参数。

补充一下个人对wait_timeout 的看法:

wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可 能会遭遇到“MySQL has gone away”之类的问题,通常来说,我觉得把wait_timeout设置为10是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本, 其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时mysql_ping一下, 以便服务器知道你还活着,重新计算wait_timeout时间):

# vi /etc/my.cnf

[mysqld]
wait_timeout=10

# /etc/init.d/mysql restart

不过这个方法太生硬了,线上服务重启无论如何都应该尽可能避免,看看如何在MySQL命令行里通过SET来设置:

mysql> set global wait_timeout=10;

mysql> show global variables like 'wait_timeout';
---------------------------- -------
| Variable_name              | Value |
---------------------------- -------
| wait_timeout               | 10    |
---------------------------- -------

这里一个容易把人搞蒙的地方是如果查询时使用的是show variables的话,会发现设置好像并没有生效,这是因为单纯使用show variables的话就等同于使用的是show session variables,查询的是会话变量,只有使用show global variables,查询的才是全局变量。

网络上很多人都抱怨说他们set global之后使用show variables查询没有发现改变,原因就在于混淆了会话变量和全局变量,如果仅仅想修改会话变量的话,可以使用类似set wait_timeout=10;或者set session wait_timeout=10;这样的语法。

第四、保存替换和重启MYSQL

编译文件之后我们保存文件,然后重启当前WEB服务器数据库,然后我们在导入数据库到是没有错误提示的。

您可能感兴趣的文章:
mysql提示MySQL server has gone away导入时报错2006错误
解决ERROR 2006 (HY000) at line XX: MySQL server has gone away问题
mysql 导入数据报2006错误的解决方法
有关mysql server has gone away报错的原因分析
mysql server has gone away报错原因的分析
MySQL导入数据库时报错,MySQL server has go away
php数据库事务遇到的问题解决
mysql 6G数据库的导入报错的解决办法
mysql报General error 2006 MySQL server has gone away...错误解决方法
mysql server has gone away的解决方法

[关闭]
~ ~