我用烧瓶和尿尿。有时 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 错误“MySQL 服务器已消失(错误(32,'损坏的管道'))”之后,选择查询可以正常工作,但插入、更新、删除查询不起作用。
在插入、更新、删除查询上(在 mysql 中)工作,但 peewee 抛出此错误。
(2006, "MySQL server has gone away (error(32, 'Broken pipe'))")
peewee文档已经讨论过这个问题,这里是链接:错误 2006:MySQL 服务器已消失 http://docs.peewee-orm.com/en/latest/peewee/database.html#error-2006-mysql-server-has-gone-away
当 MySQL 终止空闲数据库连接时,可能会发生此特定错误。这种情况通常发生在未显式管理数据库连接的 Web 应用程序中。发生的情况是您的应用程序启动,打开一个连接来处理执行的第一个查询,并且由于该连接永远不会关闭,因此它保持打开状态,等待更多查询。
所以你在管理数据库连接方面遇到了一些问题。
由于我无法重现您的问题,请您尝试一下,以这种方式关闭数据库:
@app.teardown_appcontext
def close_database(error):
db.close()
您可以从文档中获得一些信息:第 3 步:数据库连接 http://flask.pocoo.org/docs/dev/tutorial/dbcon/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)