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

2015-08-15 20:54:42 +08:00
 plantain
蛋疼的是,刚才重启了网站,结果现在重现不了了。

我是用node-mysql的数据库连接池来访问数据库的。
3362 次点击
所在节点    问与答
5 条回复
oott123
2015-08-15 21:28:41 +08:00
既然你都提到了连接池……
我猜连接池里的连接耗光了呗。

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

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

然而似乎大家都坚持认为 pool 会自动处理,但是无论如何我都没搞得定自动断开后的处理问题。
最后的选择是放弃 mysql 改用 mongodb(死
plantain
2015-08-15 22:32:08 +08:00
@oott123 网站已经正常连续运行了好几天,处理了上万次数据库操作,如果没有release连接,pool早就空了。
下周,我打算监视一下数据库操作前的连接数变化,看看是不是有低频率的代码忘了release连接。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213450

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX