OperationalError: (2006, 'MySQL server has gone away')
问题描述
使用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')相关推荐
- pymysql.err.OperationalError: (2006, “MySQL server has gone away (BrokenPipe
目录 第一种情况:真的是连接数据库超时导致,比较常见 第二种情况:MySQL插入内容超过4M 在使用python+Django写项目时,需要用到定时任务apscheduler,但服务在长时间运行时,定 ...
- (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客
(2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客 (2006, 'MySQL server has gone away ...
- django mysql 2006_Django (2006, 'MySQL server has gone away') 本地重现与解决
最近我们的Django项目供Java Sofa应用进行tr调用时, 经常会出现一个异常: django.db.utils.OperationalError: (2006, 'MySQL server ...
- #2006 - MySQL server has gone away 问题解决方法 (全) (转)
#2006 - MySQL server has gone away 问题解决方法 (全) (转) 参考文章: (1)#2006 - MySQL server has gone away 问题解决方法 ...
- Yii2 解决2006 MySQL server has gone away问题
Yii2 解决2006 MySQL server has gone away问题 参考文章: (1)Yii2 解决2006 MySQL server has gone away问题 (2)https: ...
- Yii 数据库重连告别General error: 2006 MySQL server has gone away
General error: 2006 MySQL server has gone away 错误原因 制造错误 解决办法 最新办法 错误原因 Mysql has gone away MySQL 服务 ...
- peewee mysql自动断开_flask+mako+peewee(下)(解决了Error 2006: MySQL server has gone away)
这篇主要介绍在这次项目中使用的peewee 首先我们要初始化一个数据库连接对象.这里我使用了peewee提供的链接池.当然你也可以直接指定连接例如: db = SqliteDatabase('base ...
- (2006, ‘MySQL server has gone away‘) 原因和解决方案
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 首选分析给出可能出现的 ...
- Navicat运行sql文件处理失败[ERR] 2006 - MySQL server has gone away解决
问题 如图,近一半数据处理失败,失败原因为[ERR] 2006 - MySQL server has gone away 原因 sql操作的时间过长,或者是传送的数据太大 解决 取消勾选在每个运行中运 ...
最新文章
- 传统排插即将淘汰,品胜智能排插率先符合新国标
- sql语句执行步骤详解
- 数据千万条,备份第一条:VFEmail被擦除所有数据面临关停
- bootstrap 仿实例
- android_dialog_2
- webpack 初学笔记
- 排序算法(java)——— 堆排序
- 程序员高手必会的十大编程算法
- A题:电流信号检测装置(本科)-- 2018年TI杯大学生电子设计竞赛
- qpython3怎么运行代码_关于使用qpython和qpython3写程序
- 微信网页版如何给公众号发消息
- 被指开除高级研究员,谷歌大神Jeff Dean回应:是她说不答应条件就离职
- springBoot启动错误:Field categoryMapper in xxx.xxx.service.impl.CategoryServiceImpl required a bean of
- #Ant Design# 设计规范 设计原则
- HEVC BLA、CRA、IDR
- APP上短信验证码如何验证?
- 前端 CSS : 1# 纯 CSS 实现万圣节 toggle 控件
- 梦回JDBC —— (Statement对象)
- Spring和Spring Boot区别
- Swift 头像上传(2)http://blog.csdn.net/wei_chong_chong/article/details/52611110
热门文章
- 华为鸿蒙系统nolog什么意思,华为P40Pro更新EMUI11尝鲜,变化很大,但不能外传!...
- Module not found: Error: Can‘t resolve ‘element-ui‘ in ‘D:ui\t-vue1\src‘ error in ./src/main.js
- 企业Linux服务器五款必备基本软件
- 使用javaassist动态修改字节码文件
- 三十难立:没房子,没工作,没女人
- 10个提高效率的在线实用工具
- 通俗易懂:彻底明白什么是神经网络
- 北邮计算机网络dns实验报告,北邮计网实践实验报告范文
- 苹果拒绝专利授权三星 诉讼或蔓延至中国地区
- Adobe Acrobat Pro制作带有表单的pdf