您的位置:首页 > 数据库 > SQL

导入Mysql数据量大是产生#2006 - MySQL has gone away 错误的解决办法

2017-11-17 21:12 661 查看
出现MySQL server has gone away有几种原因。

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。

    最常见的就是采集或者新旧数据转化。

    解决方案:

    

在my.ini文件中添加或者修改以下两个变量:

wait_timeout=288000

interactive_timeout = 288000

    

2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。

比如,图片数据的处理。解决方案是:

在my.ini文件中添加或者修改以下变量:

max_allowed_packet = 10M(默认为1M,也可以设置自己需要的大小)

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

最保险的方法:

将2段代码都加上:

max_allowed_packet=500M
wait_timeout=288000

interactive_timeout = 288000

自己看情况更改数值,最后记得重启你的mysql服务。

这样的话就能很好的解决MySQL server has gone away问题了。max_allowed_packet是mysql允许最大的数据包,也就是你发送的请求; wait_timeout是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时后就会现了MySQL server has gone away #2006错误。max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 数据
相关文章推荐