问题描述

使用django+celery时, 运行长时间的任务, 一开始操作一次数据库, 20个小时后再次操作数据库.

过了20多个小时, 再次操作数据库时报错.

raised unexpected: OperationalError(2006, 'MySQL server has gone away')
Traceback (most recent call last):File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 85, in manager_methodreturn getattr(self.get_queryset(), name)(*args, **kwargs)File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 374, in getnum = len(clone)File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 232, in __len__self._fetch_all()File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1118, in _fetch_allself._result_cache = list(self._iterable_class(self))File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 53, in __iter__results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 894, in execute_sqlraise original_exception
OperationalError: (2006, 'MySQL server has gone away')

原因

连接超时

我出现问题就是这个原因.
进入mysql,执行下面的命令:

mysql> show global variables like '%timeout';+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 28800    |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 28800    |
+----------------------------+----------+

wait_timeout 是28800秒,即mysql链接在无操作28800秒后被自动关闭

解决方法

立即生效

执行下面的sql命令

mysql> set global wait_timeout=60*60*30;

该命令是将wait_timeout设置为30小时.
用这种方法,修改完立即生效. 如果重启mysql, 又恢复原来的28800秒.

永久生效

该方法修改完之后, 需要重启mysql才能生效.
编辑mysql配置文件my.cnf,添加或修改为下面这条命令.
(我的mysql配置文件路径: /etc/mysql/my.cnf )

wait_timeout = 108000

其他原因

还有一些其他原因, 简单描述一下
1: mysql服务关闭
2: 数据包 过大
解决方法: 修改 max_allowed_packet 的值, 方法同上.

OperationalError: (2006, 'MySQL server has gone away')相关推荐

  1. pymysql.err.OperationalError: (2006, “MySQL server has gone away (BrokenPipe

    目录 第一种情况:真的是连接数据库超时导致,比较常见 第二种情况:MySQL插入内容超过4M 在使用python+Django写项目时,需要用到定时任务apscheduler,但服务在长时间运行时,定 ...

  2. (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客

    (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客 (2006, 'MySQL server has gone away ...

  3. django mysql 2006_Django (2006, 'MySQL server has gone away') 本地重现与解决

    最近我们的Django项目供Java Sofa应用进行tr调用时, 经常会出现一个异常: django.db.utils.OperationalError: (2006, 'MySQL server ...

  4. #2006 - MySQL server has gone away 问题解决方法 (全) (转)

    #2006 - MySQL server has gone away 问题解决方法 (全) (转) 参考文章: (1)#2006 - MySQL server has gone away 问题解决方法 ...

  5. Yii2 解决2006 MySQL server has gone away问题

    Yii2 解决2006 MySQL server has gone away问题 参考文章: (1)Yii2 解决2006 MySQL server has gone away问题 (2)https: ...

  6. Yii 数据库重连告别General error: 2006 MySQL server has gone away

    General error: 2006 MySQL server has gone away 错误原因 制造错误 解决办法 最新办法 错误原因 Mysql has gone away MySQL 服务 ...

  7. peewee mysql自动断开_flask+mako+peewee(下)(解决了Error 2006: MySQL server has gone away)

    这篇主要介绍在这次项目中使用的peewee 首先我们要初始化一个数据库连接对象.这里我使用了peewee提供的链接池.当然你也可以直接指定连接例如: db = SqliteDatabase('base ...

  8. (2006, ‘MySQL server has gone away‘) 原因和解决方案

    mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 首选分析给出可能出现的 ...

  9. Navicat运行sql文件处理失败[ERR] 2006 - MySQL server has gone away解决

    问题 如图,近一半数据处理失败,失败原因为[ERR] 2006 - MySQL server has gone away 原因 sql操作的时间过长,或者是传送的数据太大 解决 取消勾选在每个运行中运 ...

最新文章

  1. 传统排插即将淘汰,品胜智能排插率先符合新国标
  2. sql语句执行步骤详解
  3. 数据千万条,备份第一条:VFEmail被擦除所有数据面临关停
  4. bootstrap 仿实例
  5. android_dialog_2
  6. webpack 初学笔记
  7. 排序算法(java)——— 堆排序
  8. 程序员高手必会的十大编程算法
  9. A题:电流信号检测装置(本科)-- 2018年TI杯大学生电子设计竞赛
  10. qpython3怎么运行代码_关于使用qpython和qpython3写程序
  11. 微信网页版如何给公众号发消息
  12. 被指开除高级研究员,谷歌大神Jeff Dean回应:是她说不答应条件就离职
  13. springBoot启动错误:Field categoryMapper in xxx.xxx.service.impl.CategoryServiceImpl required a bean of
  14. #Ant Design# 设计规范 设计原则
  15. HEVC BLA、CRA、IDR
  16. APP上短信验证码如何验证?
  17. 前端 CSS : 1# 纯 CSS 实现万圣节 toggle 控件
  18. 梦回JDBC —— (Statement对象)
  19. Spring和Spring Boot区别
  20. Swift 头像上传(2)http://blog.csdn.net/wei_chong_chong/article/details/52611110

热门文章

  1. 华为鸿蒙系统nolog什么意思,华为P40Pro更新EMUI11尝鲜,变化很大,但不能外传!...
  2. Module not found: Error: Can‘t resolve ‘element-ui‘ in ‘D:ui\t-vue1\src‘ error in ./src/main.js
  3. 企业Linux服务器五款必备基本软件
  4. 使用javaassist动态修改字节码文件
  5. 三十难立:没房子,没工作,没女人
  6. 10个提高效率的在线实用工具
  7. 通俗易懂:彻底明白什么是神经网络
  8. 北邮计算机网络dns实验报告,北邮计网实践实验报告范文
  9. 苹果拒绝专利授权三星 诉讼或蔓延至中国地区
  10. Adobe Acrobat Pro制作带有表单的pdf