Sqlalchemy错误:MySQL连接不可用。

3

一个Python 3.6脚本在首次启动时使用SQLAlchemy访问MySQL数据库。然后,脚本在数小时内继续运行而不访问MySQL数据库。但是当它最终决定访问MySQL时,我们会遇到一个错误:

sqlalchemy.exc.OperationalError: (mysql.connector.errors.OperationalError) MySQL连接不可用。[SQL:'SELECT ........ ]

引擎是使用以下代码创建的:

create_engine("mysql+mysqlconnector://..., pool_pre_ping=True, pool_recycle=290)

pool_recycle 的值已经被减少到290秒,比其他SO帖子中推荐的3600秒要短得多。

启用 pool_pre_ping 也没有帮助重新连接MySQL以避免上述错误。

MySQL 变量

SHOW VARIABLES LIKE 'wait_%'; 返回了具有值 28800wait_timeout

SHOW VARIABLES LIKE 'interactive_%'; 返回了具有值 28800interactive_timeout

软件版本

  • Python 3.5
  • SQLAlchemy 1.2.2
  • Ubuntu 16.04

我们应该如何排除故障?

1个回答

0

您可以重新启动mysql服务器以测试重新连接。
我的SQLAlchemy引擎配置通常是:

pool_recycle=3600,   
pool_size=5,   
max_overflow=10,   
pool_timeout=30,  
pool_pre_ping=True 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接