【问题标题】:Periodic OperationalError: (2006, 'MySQL server has gone away')Periodic OperationalError: (2006, 'MySQL server has gone away')
【发布时间】:2013-12-16 23:15:03
【问题描述】:

我在 pythonanywhere.com 上托管一个网络应用程序并遇到一个奇怪的问题。每隔半小时左右我就会收到 OperationalError: (2006, 'MySQL server has gone away')。但是,如果我重新保存我的 wsgi.py 文件,错误就会消失。然后半小时后又出现了……

在加载主页期间,我的应用会检查 1x1 表中的 BOOL 字段(基本上是应该打开还是关闭注册)。唯一的其他 MySQL 操作是插入另一个小表,但这些操作似乎都与问题无关。

关于如何解决此问题的任何想法?我可以根据需要提供更多信息。提前感谢您的帮助。

编辑

问题在于知道代码的某些部分何时运行。我假设每次加载页面时都会打开一个新连接。此情况并非如此;不过,我现在已经修好了。

【问题讨论】:

    标签: python mysql mysql-python pythonanywhere


    【解决方案1】:

    这通常是因为您的mysql网络连接断开,可能是您的网络网关/路由器,所以您有两种选择。一个是在每次查询之前总是建立一个 mysql 连接(不使用连接池等)。其次是尝试捕获此错误,然后再次获取连接和查询数据库。

    【讨论】:

    • 感谢 PasteBT。但这就是我感到困惑的地方:对于每个页面加载或 POST 请求,我都会打开一个新的 MySQL 连接——我没有做任何池化?
    猜你喜欢
    • 2011-12-11
    • 2012-12-19
    • 2015-10-20
    • 2011-02-04
    • 2012-10-30
    • 2019-10-13
    • 2015-12-02
    • 2017-12-21
    • 2015-07-22
    相关资源
    最近更新 更多