首页 > 数据库技术 > 详细

mysql重启服务后,pymsql报错InterfaceError: 2013: Lost connection to MySQL server during query

时间:2021-09-22 08:32:35      阅读:45      评论:0      收藏:0      [点我收藏+]

mysql重启后,之前的SQLALCHEMY连接并未断开,所以会用之前的连接再次请求。这个时候问题就出现了。为了避免问题的发生,可以在SQLALCHEMY或者FLASK_SQLALCHEMY中设置悲观处理。

每次请求前先预先请求一次数据库,这个查询可以是简单的查询比如select 1。一旦预先请求出错则重新建立数据库连接。

SQLALCHEMY中连接配置中有一个参数:
pool_pre_ping
设置为True的时候,每次请求就会自动识别连接状态。
engine = create_engine("mysql+pymysql://user:pw@host/db", pool_pre_ping=True)

如果是采用配置式连接的:

app.config[SQLALCHEMY_DATABASE_URI] = url
app.config[SQLALCHEMY_ENGINE_OPTIONS] = {pool_pre_ping:True}

这样在数据库重启或者网络引起的数据库连接断开就不会产生报错。

mysql重启服务后,pymsql报错InterfaceError: 2013: Lost connection to MySQL server during query

原文:https://www.cnblogs.com/DarkRoger/p/15308233.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!