诊断2013与MySQL失去联系

fre*_*bie 6 mysql sqlalchemy heroku cleardb

我正在使用SQLAlchemy和两个MySQL数据库.其中一个是我的机器本地托管的开发数据库,​​另一个是ClearDB在Heroku上提供的用于生产的MySQL服务器.

我与数据库打开了一个长时间运行的会话,同时它与另一个服务执行同步操作.在我的本地机器上,这很好,但在生产中我得到错误(2013年,"在查询期间丢失了与MySQL服务器的连接").

我已经读过其他帖子,说它可能是请求的大小太大或需要调整的池刷新变量.我不相信事务有效负载相对那么大,并且pool_recycle在调用SQLAlachemy时设置变量create_engine似乎不起作用.

有没有其他人遇到过这个问题,或者能够帮助我缩小这个错误的根本原因 - 这似乎是一个问题,我不知道从哪里开始.

根据评论中的要求,两个系统都返回相同的值select @@interactive_timeout, @@wait_timeout:28800,28800.

谢谢

fre*_*bie 3

尽管这两个数据库通常似乎使用相同的超时和配置。结果是 ClearDB 在其他地方执行了超时。

ClearDB 监视连接并在它们打开超过一分钟时终止它们。我最初无法找到这个文档

修复实际上是在创建引擎时将pool_recycle参数设置为。pool_recycle=60我之前的尝试使用了高于此值的任意数字(因为我不知道 ClearDB 的超时)。