我正在运行django 1.10,python3.4,mysqlclient,mysql5.5上的网站。
我在后台运行多个管理命令,用于在不同时间执行各种任务(如邮件发送,更新表)。最近,我开始看到许多Mysql消失了(错误2006)。
我尝试将connection_timeout更改为大于max_connection年龄。这解决了一小部分问题,其中在大多数情况下,错误2006停止发生运行功能,但其他情况也是如此,并经常看到错误2006.
在某些情况下,我尝试在运行函数或将其放入try - except循环之前使用django.db.connection.close()。在那些地方,这个错误不再发生,但我不能在每个函数中放置这个try-except循环。
这个重复错误的根本原因是什么Mysql消失了?什么是不同的解决方案,什么是最佳解决方案,以便我不必更改我的大部分代码?
其他变量:
我们从django 1.7升级到1.10并最近更新了mysqlclient软件包,之后问题浮出水面。
在更新时,我们网站上的流量也增加了多倍。这可能是一个触发器吗?
答案 0 :(得分:0)
正如其他地方所见,问题可能是您的查询太长,或者服务器由于不活动而关闭了连接。这在很大程度上取决于具体情况,但似乎如果你不处于交易中(这将放弃第二种可能性),你可以应用类似Hook available for automatic retry after deadlock in django and mysql setup
的内容。