我正在使用Pylons(python框架)为一个简单的Web应用程序提供服务,但它似乎有时会死掉,并在错误日志中显示以下信息: (2006, 'MySQL server has gone away')
我做了一些检查,发现这是因为没有更新与MySQL的连接。不过,这应该不成问题,因为sqlalchemy.pool_recycle配置文件中的会自动使它保持活动状态。默认3600值为,但是1800由于这个问题,我将其拨回。它有所帮助,但根据文档3600 应该可以。错误仍然会半定期发生。我不想降低太多,但是不要使用DOS我自己的数据库:)。
也许我的MySQL配置中有些东西有些愚蠢?不知道在哪里看。
其他相关细节:
Python 2.5 Pylons: 0.9.6.2 (w/ sql_alchemy) MySQL: 5.0.51
问题来源于stack overflow
您可能要检查MySQL的超时变量:
show variables like '%timeout%'; 您可能对此感兴趣wait_timeout(不太可能但可能:)interactive_timeout。在Debian和Ubuntu上,默认值为28800(MySQL会在8小时后终止连接),但也许平台的默认值是不同的,或者管理服务器的人配置的内容都不同。
AFAICT pool_recycle实际上并没有保持连接的状态,而是在MySQL杀死它们之前自行使它们失效。我不熟悉挂架,但是如果使连接间歇性地执行a SELECT 1;是一种选择,那么它将以基本上没有服务器负载和最小网络流量为代价使它们保持活动状态。最后一个想法:您是否正在设法使用定向塔认为已经过期的连接?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。