最近在做一个爬虫程序,是对一个网站的全站数据收集。程序调好后跑了一晚上,第二天来看就出现了“MySQL server has gone away”的错误, 调了半天以为是程序哪里的逻辑没对,写了单元测试也是通过的。。百思不得其解。
后来网上一搜才知道了原因
一般有两种情况会导致"MySQL server has gone away"的错误
1.mysql实例化后长时间没有对其操作,造成超时。
2.执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段
我在爬虫的主程序就首先就初始化了mysql连接,但是之后都是在对网页就行解析,解析的内容到最后才存入数据库,但是到了网站解析完准备入库的时候,已经到了mysql的超时时间了,所以就出现了"MySQL server has gone away"的错误。
在这这情况下,有几种解决方案。
一,优化程序,要嘛边搜集网页边入库,要嘛等待所有的网页搜集完后,再初始化mysql,这样就不会碰到超时的情况。
二,在配置文件my.ini中修改mysql的超时时间和缓存长度。
wait_timeout=2880000 (
)
interactive_timeout=2880000 (
)
max_allowed_packet=10M(缓存大小)
当然也可以通过sql语句来设置
'set global interactive_timeout = 2880000'
'set global wait_timeout = 288000'
'set global max_allowed_packet = 2880000'
分享到:
相关推荐
此文档中详细的记载了,MySQL server has gone away 问题的解决方法,希望可以帮助到你!
今天遇到类似的情景,MySQL只是冷冷的说:MySQL server has gone away。
MySQL导入sql脚本错误:2006 – MySQL server has gone away 到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24 Line no.:85 Error Code: 2006 - MySQL ...
在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功。该项的作用是限制mysql服务端接收到的包...
主要介绍了gearman中worker常驻后台,导致MySQL server has gone away的解决方法,较为详细的分析了造成MySQL server has gone away的原因与相关的解决方法,需要的朋友可以参考下
MYSQL server has gone away 引起这个原因是不可怕的.原因是更改了系统的断开时间. mysql>show gloable variables like “%timeout%”; 进行查看 interactive_timeout 的黓认值为28800 wait_timeout 的默认值这:...
最全面的MySQL数据库的调优方法,欢迎大家下载!
若导入时报错,ERROR 2006 (HY000):MySQL server has gone away 。我们可以通过语句查看一下允许的最大包大小:show global variables like 'max_allowed_packet'; MySQL使用最大数据包站站点进行服务器和客户端...
Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded but available-附件资源
Django 自称是“最适合开发有限期的完美WEB框架”。本文参考《Django web开发指南》,快速搭建一个blog 出来,在中间涉及诸多知识点,这里不会详细说明,如果你是第一次接触Django ,本文会让你在感性上对Django有个...
基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...
OperationalError: (2006, ‘MySQL server has gone away’) OperationalError: (2013, ‘Lost connection to MySQL server during query’) 查询mysql全局变量SHOW GLOBAL VARIABLES;可以看到wait_timeout,此变量...
ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... 这个报错信息就意味着当前的连接已经断开,需要重新建立连接。 那么,连接的时长是如何确认的? 其实,这个与interactive_...
解决办法是: 运行下面SQL 代码如下:USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL=” SELECT @SQL=@SQL+’;... 您可能感兴趣的文章:MySQL server has gone away 问题的解决方法MySQL提示:The