首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

flask_sqlalchemy MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))

  •  
  •   NeverBelieveMe · 48 天前 · 606 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个问题有大佬碰到过么?不知道怎么解决,网上搜了 SQLALCHEMY_POOL_SIZE,SQLALCHEMY_POOL_RECYCLE 这两个参数设定的方案也不成功。现在不太清楚怎么解决。而且也不明白什么原因导致的问题。
    12 回复  |  直到 2019-01-03 12:03:12 +08:00
        1
    myyou   48 天前
    这个表示 mysql 连接已经断开了,SQLALCHEMY_POOL_RECYCLE 设置短一些,或者不使用连接池,去掉 SQLALCHEMY_POOL_SIZE 和 SQLALCHEMY_POOL_RECYCLE
        2
    liuzhedash   48 天前
    这要看 mysql 的 error.log 来确定问题,你改 sqlalchemy 那俩参数似乎并无根据呀?
        3
    NeverBelieveMe   48 天前
    @myyou 我原来没有设置出了问题,然后才加的,加了也没用。
        4
    NeverBelieveMe   48 天前
    @liuzhedash 这样啊,那我去找找看 mysql 的日志。
        5
    qq316107934   48 天前 via Android
    session 泄露没有关闭吧,用 try catch 加上下文管理器试试?
        6
    NeverBelieveMe   48 天前
    @qq316107934 session 每个请求内用完都要关掉么?
        7
    qq316107934   48 天前
    @NeverBelieveMe #6 有些版本的 sqlalchemy session 池管理有问题,用完关掉不是很影响效率,而且能解决报错的问题。
        8
    xayoung   48 天前
    我是每次用完 session 关掉,才完全解决这个问题的。
        9
    est   48 天前   ♥ 2
    @qq316107934

    其实大家不用猜了。python 的几乎所有库的连接池都有问题

    原因很简单,连接池应该在一定超时时间 idle 之后去自动重连一个的。python 的 threading、协程的状况,几乎没有一个库去实现一个 timer 主动去轮换连接。都是一个 db 操作的动作再去检查连接。然后远端主动关闭,python 的 tcp 其实是没法响应 TIME_WAIT 的。于是一发过去就 Broken pipe。。
        10
    Joe0920   48 天前
    @est 那应该咋解决?就是有那种好久没人使用的系统,一来又一顿猛着用那种
        11
    tanszhe   48 天前 via Android
    几行代码
    就能搞定的事情
        12
    fanhaipeng0403   48 天前
    db.session.close()

    每次都关掉,绝对会解决
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3904 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 07:27 · PVG 15:27 · LAX 23:27 · JFK 02:27
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1