kaw*_*vin 7 python mysql macos sqlalchemy
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..... '
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些线程,大多数情况通过将其添加到 my.cnf 来解决
max_allowed_packet = 1024M
Run Code Online (Sandbox Code Playgroud)
这对于我尝试做的事情来说应该足够大了。这样做后,我间歇性地踩它。并将这一行放在 /etc/my.cnf 中:
log-error = "/Users/<myname>/tmp/mysql.err.log"
log-warnings = 3
Run Code Online (Sandbox Code Playgroud)
我希望获得更多详细信息,但我所看到的只是这样的:
[Warning] Aborted connection 444 to db: 'dbname' user: 'root' host: 'localhost' (Got an error reading communication packets)
Run Code Online (Sandbox Code Playgroud)
我已经到了我认为更多细节更好的日志记录可能会有所帮助的地步,或者如果在此之前我可以尝试其他一些事情。
谢谢。
看起来您的 MySQL 连接在长时间不活动后超时,我打赌如果您不断使用现有设置查询数据库,这种情况就不会发生。MySQL 和 sql 端都有一些设置可以解决这个问题:
检查您的 SQLa 引擎的pool_recycle值,尝试不同/较小的值,例如 1800(秒)。如果您正在从文件中读取数据库设置,请将其设置为
池回收:1800
否则在引擎初始化期间指定它,例如
from sqlalchemy import create_engine
e = create_engine("mysql://user:pass@localhost/db", pool_recycle=1800)
Run Code Online (Sandbox Code Playgroud)
检查/修改您的wait_timeoutMySQL 变量,请参阅https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout这是服务器等待非交互式连接上的活动的秒数在关闭它之前。例如
显示全局变量,如“wait_timeout”;
找到适合您环境的组合。
| 归档时间: |
|
| 查看次数: |
12228 次 |
| 最近记录: |