SQLAlchemy (0.9.8) 和 mysql-5.6.21-osx10.8-x86_64 和 MAC OS X 10.3.3 (Yosemite)
我总是断断续续:
InterfaceError: (InterfaceError) 2013: Lost connection to MySQL server during query u'SELECT..... '
我已经阅读了一些线程,大多数情况都可以通过将其添加到 my.cnf 来解决
max_allowed_packet = 1024M
对于我尝试做的事情来说应该足够大了。做完这件事后,我断断续续地踩着它。并将此行放入 /etc/my.cnf 中:
log-error = "/Users/<myname>/tmp/mysql.err.log"
log-warnings = 3
我希望获得更多详细信息,但我看到的只是这样:
[Warning] Aborted connection 444 to db: 'dbname' user: 'root' host: 'localhost' (Got an error reading communication packets)
我已经达到了这样的程度,我认为更详细、更好的日志记录可能会有所帮助,或者如果在此之前我可以尝试其他方法。
Thanks.
看起来您的 MySQL 连接在长时间不活动后超时,我打赌如果您不断使用现有设置查询数据库,这种情况就不会发生。 MySQL 和 sql 端都有一些设置可以解决这个问题:
-
检查你的 SQL 引擎pool_recycle
值,尝试不同/较小的值,例如1800(秒)。如果您正在从文件中读取数据库设置,请将其设置为
池回收:1800
否则在引擎初始化期间指定它,例如
from sqlalchemy import create_engine
e = create_engine("mysql://user:pass@localhost/db", pool_recycle=1800)
-
检查/修改你的wait_timeout
MySQL 变量,请参见https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout这是服务器在关闭非交互式连接之前等待该连接上的活动的秒数。例如
显示全局变量,如“wait_timeout”;
找到适合您环境的组合。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)