本文主要是介绍SqlAlchemy: (OperationalError) 2006, MySQL server has gone away,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:
这实际上是MySQL的错误消息。 这意味着无法连接上MySQL了。默认情况下,MySQL数据库连接在闲置8小时之后关闭。 没有MySQL连接意味着无法执行任何SQL操作。 所以SqlAlchemy报出错误。
如何解决:
首先查看mysql跟timeout有关的设置,如下图
show variables like '%timeout%';
上图中的interactive_timeout = 28800 s,也就是28800/3600 = 8小时。
当使用SQLAlchemy时要解决上述问题,只要create_engine按照如下参数定义:
engine = create_engine(db_path, pool_size = 10, pool_recycle=7200)
看一下pool_recycle变量。 这会将SqlAlchemy引擎配置为每7200秒(小于28800秒)重新连接一次。 这个简单的解决方案确保了MySQL连接的存在。
官方文档:https://docs.sqlalchemy.org/en/13/core/engines.html?highlight=create_engine#sqlalchemy.create_engine
这篇关于SqlAlchemy: (OperationalError) 2006, MySQL server has gone away的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!