V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
plantain
V2EX  ›  问与答

nodejs 网站正常运行一段时间后,突然所有需要访问数据库的接口都没有响应(其它接口都正常),日志里也没有记录任何错误,而通过 mysql client 可以正常连接这个数据库。这种一般是那方面的问题?

  •  
  •   plantain · 2015-08-15 20:54:42 +08:00 · 3412 次点击
    这是一个创建于 3374 天前的主题,其中的信息可能已经有所发展或是发生改变。
    蛋疼的是,刚才重启了网站,结果现在重现不了了。

    我是用node-mysql的数据库连接池来访问数据库的。
    5 条回复    2015-08-15 22:32:08 +08:00
    oott123
        1
    oott123  
       2015-08-15 21:28:41 +08:00
    既然你都提到了连接池……
    我猜连接池里的连接耗光了呗。

    翻了下文档,你确定你用了 `connection.release();` 来释放连接池吗?
    oott123
        2
    oott123  
       2015-08-15 21:28:56 +08:00
    * 释放连接
    ytzong
        3
    ytzong  
       2015-08-15 21:41:55 +08:00
    http://www.99css.com/vps-and-nodejs/ 修改一下 MySQL 的配置
    phoenixlzx
        4
    phoenixlzx  
       2015-08-15 21:57:15 +08:00
    我之前也遇到过,我说用连接池的话如果有 MySQL 自动断开,连接池不会自动 handle。

    https://github.com/felixge/node-mysql/issues/652

    然而似乎大家都坚持认为 pool 会自动处理,但是无论如何我都没搞得定自动断开后的处理问题。
    最后的选择是放弃 mysql 改用 mongodb(死
    plantain
        5
    plantain  
    OP
       2015-08-15 22:32:08 +08:00
    @oott123 网站已经正常连续运行了好几天,处理了上万次数据库操作,如果没有release连接,pool早就空了。
    下周,我打算监视一下数据库操作前的连接数变化,看看是不是有低频率的代码忘了release连接。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2723 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.