【问题标题】:Peewee MySQL server has gone awayPeewee MySQL 服务器已经消失
【发布时间】:2016-03-06 10:12:31
【问题描述】:

我使用烧瓶和小便。有时peewee会抛出这个错误

MySQL server has gone away (error(32, 'Broken pipe'))

Peewee 数据库连接

db = PooledMySQLDatabase(database,**{
            "passwd": password, "user": user,
            "max_connections":None,"stale_timeout":None,
            "threadlocals" : True
        })

@app.before_request
def before_request():
    db.connect()

@app.teardown_request
def teardown_request(exception):
    db.close()

在出现“MySQL server has gone away (error(32, 'Broken pipe'))”的mysql错误后,选择查询正常工作,但插入、更新、删除查询不起作用。

插入、更新、删除查询在后面(在 mysql 中)起作用,但 peewee 抛出此错误。

(2006, "MySQL server has gone away (error(32, 'Broken pipe'))")

【问题讨论】:

  • 你试过stale_timeout设置吗?默认为300
  • @KlausD。我试过但仍然有同样的错误。当我在烧瓶运行期间关闭并启动 mysql 时会发生这种情况。还有当mysql宕机并自行重启时。
  • 这是使用连接池时的常见问题。解决这个问题的最简单方法是重新启动 WSGI 服务器(或者你如何运行 Flask)和你的 MySQL 服务器。另外你应该重新启动你的 MySQL 服务器,数据库服务器是为运行而不是重新启动而设计的。

标签: python mysql flask peewee broken-pipe


【解决方案1】:

我知道这是一个老问题,但我也以另一种可能感兴趣的方式解决了这个问题。就我而言,它是一个太大的insert_many。 要修复它,只需分批插入,如in the peewee documentation 所述

【讨论】:

    【解决方案2】:

    我知道这是一个老问题,但由于没有公认的答案,我想我会加两分钱。

    在 Peewee 对象中提交大量数据时,我遇到了同样的问题(大于 MySQL 默认允许在单个提交中允许的数据量)。我通过更改 my.conf 中的 max_allowed_pa​​cket 大小来修复它。

    为此,打开 my.conf,在[mysqld] 下添加以下行:

    max_allowed_packet=50M

    ...或者你需要的任何大小,然后重新启动 mysqld

    【讨论】:

      【解决方案3】:

      peewee 文档已经讲过这个问题,这里是链接:Error 2006: MySQL server has gone away

      当 MySQL 终止空闲数据库连接时,可能会发生此特定错误。这通常发生在不明确管理数据库连接的 Web 应用程序中。发生的情况是您的应用程序启动,打开一个连接以处理执行的第一个查询,并且由于该连接从未关闭,它保持打开状态,等待更多查询。

      所以您在管理数据库连接时遇到了一些问题。


      由于我无法重现您的问题,请您试试这个,这样关闭您的数据库:

      @app.teardown_appcontext
      def close_database(error):
          db.close()
      

      您可能会从文档中获得一些信息:Step 3: Database Connections

      【讨论】:

      • 我试过@app.teardown_appcontext 但仍然有同样的情况
      • @Alexander 你有什么解决办法吗?我也面临同样的问题!
      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 2010-12-20
      • 2015-01-15
      • 2017-04-02
      • 2011-11-09
      • 2014-02-12
      • 2015-04-05
      相关资源
      最近更新 更多