【发布时间】: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