我正在使用Pylons(python框架)为一个简单的Web应用程序提供服务,但它似乎有时会死掉,并在错误日志中显示以下信息: (2006, 'MySQL server has gone away')我做了一些检查,发现这是因为没有更新与MySQL的连接。不过,这应该不成问题,因为sqlalchemy.pool_recycle配置文件中的会自动使它保持活动状态。默认3600值为,但是1800由于这个问题,我将其拨回了。它有所帮助,但根据文档显示3600 应该还可以。错误仍然会半定期发生。我不想降低太多,但是我不想使用DOS我自己的数据库:)。也许我的MySQL配置中有些东西有些愚蠢?不确定确切的位置。
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
您可能要检查MySQL的超时变量:
show variables like '%timeout%';
您可能对此感兴趣wait_timeout
(不太可能但可能:)interactive_timeout
。在Debian和Ubuntu上,默认值为28800(MySQL会在8小时后终止连接),但也许您的平台的默认值有所不同,或者管理服务器的人对配置的配置有所不同。
AFAICTpool_recycle
实际上并没有保持连接的状态,而是在MySQL杀死它们之前自行使它们失效。我不熟悉挂架,但是如果使连接间歇性地执行aSELECT 1;
是一种选择,那么它将以基本上没有服务器负载和最小网络流量为代价使它们保持活动状态。最后一个想法:您是否设法以某种方式使用了pylons认为已过期的连接?
添加回答
举报
0/150
提交
取消