Python 3.6 脚本在首次启动时使用 SQLAlchemy 访问 MySQL 数据库。然后该脚本继续运行数小时而不访问 MySQL 数据库。然而,当它最终决定访问 MySQL 时,我们得到一个错误
sqlalchemy.exc.OperationalError: (mysql.connector.errors.OperationalError) MySQL Connection not available. [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_%';
给 wait_timeout
值 28800
SHOW VARIABLES LIKE 'interactive_%';
给 interactive_timeout
值 28800
软件版本
- python 3.5
- SQLAlchemy 1.2.2
- Ubuntu 16.04
我们应该如何解决这个问题?
最佳答案
您可以重启mysql服务器来测试重连情况。
我的 sqlalchemy 引擎配置一般是:
pool_recycle=3600,
pool_size=5,
max_overflow=10,
pool_timeout=30,
pool_pre_ping=True
关于python - SQLAlchemy 错误 : MySQL Connection not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937154/