" MySQL服务器已经消失了#34;长时间闲置后出错

时间:2017-04-27 18:25:09

标签: python mysql flask sqlalchemy flask-sqlalchemy

我知道这个问题在SO上并不是新问题,但我无法找到解决方案。每当我让我的应用程序在夜间运行后返回我的桌面时,我会收到MySQL server has gone away错误,该错误一直持续到我重启我的uwsgi服务。我已经完成了以下工作:

  • pool_recycle=我的create_engine()电话
  • 中有一些非常大的数字
  • ping_connection()装饰者之后添加了@event.listens_for()(我无法使用pool_pre_ping - 这会打破我的create_engine()电话)
  • /etc/my.cnf中我添加了wait_timeoutinteractive_timeout参数的大值

但没有任何效果。

1 个答案:

答案 0 :(得分:1)

在位于here的sqlalchemy文档中,您正在寻找 pool_recycle 功能。

from sqlalchemy import create_engine

engine = create_engine("mysql://scott:tiger@localhost/test", pool_recycle=28700)

pool_recycle 设置为值< mysql配置文件中的 wait_timeout my.cnf

MySQL默认 wait_time 是28800(8小时)

如果你修改了conf文件,请不要忘记重新启动你的服务(例如mysql等)