由于某种原因,我得到了与数据库断开连接的错误消息。我正在使用Flask,Python和SQLAlchemy,该应用程序在www.example.com上运行pythonanywhere.com我已经遇到了类似的问题,无法找到解决问题的方法。具体来说,我将app.config[“SQLALCHEMY_POOL_RECYCLE”] = 299作为推荐设置。然而,在下面的链接https://help.pythonanywhere.com/pages/UsingSQLAlchemywithMySQL/中,我在pythonanywhere中找到了建议,说池回收的值应该是280。
我使用Flask-SQLAlchemy==3.0.5和sqlalchemy版本'2,0,19'
Python 3.10.5 (main, Jul 22 2022, 17:09:35) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__
'2.0.19'
>>>
字符串
我的配置是:
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:{password}@{hostname}/{databasename}".format(
username=DATABASE_USERNAME,
password=DATABASE_PASSWORD,
hostname=DATABASE_HOST_NAME,
databasename=DATABASE_NAME
)
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
app.config["SQLALCHEMY_POOL_RECYCLE"] = 280
型
pythonanywhere上的https://help.pythonanywhere.com/pages/UsingSQLAlchemywithMySQL/链接中的文档指出:“如果您使用Flask-SQLAlchemy插件,那么对于最新版本,您可以这样配置它:
app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {'pool_recycle' : 280}
db.init_app(app)
型
“
我的问题是:我应该换掉
app.config["SQLALCHEMY_POOL_RECYCLE"] = 280
型
与
app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {'pool_recycle' : 280}
型
- 谢谢-谢谢
1条答案
按热度按时间sczxawaw1#
找到的解决方案:执行链接https://help.pythonanywhere.com/pages/UsingSQLAlchemywithMySQL/建议的新格式,并让Web应用程序在无屏幕活动的情况下运行7分钟。实验结果令人满意。应用程序未检测到与MySQL数据库的连接丢失。建议您跟踪Flask-SQLAlchemy的版本,并正确应用新格式app.config ['SQLALCHEMY_ENGINE_OPTIONS']={'pool_recycle':280}来解决与MySQL失去连接的情况。