本文适用于
Flask-SQLAlchemy3.0.x
错误类型:配置错误
报错详细信息
1 | \[2023-05-11 21:06:26,517\] ERROR in app: Exception on /page/ \[GET\] |
解决方式
通过配置pool_recycle
参数对超时的连接进行回收。
步骤:
- 在数据库中执行SQL语句:show global variables like ‘%timeout%’;
- 获取wait_timeout的值(默认3600)
- 在flask中(实例化sqlalchemy之前)设置配置:
app.config['SQLALCHEMY_ENGINE_OPTIONS']={'pool_recycle':2000}
写在文后
自Flask-SQLAlchemy3.0.x后,大多数可配置项已经失效,例如:
SQLALCHEMY_POOL_TIMEOUT
指定数据库连接池的超时时间。默认是 10。
SQLALCHEMY_POOL_RECYCLE自动回收连接的秒数。这对 MySQL 是必须的,默认 情况下 MySQL 会自动移除闲置 8 小时或者以上的连接。 需要注意地是如果使用 MySQL 的话, Flask-SQLAlchemy 会自动地设置这个值为 2 小时。