Node.js和MySQL“Too many connections”错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Node.js和MySQL“Too many connections”错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1940字,纯文字阅读大概需要3分钟。
内容图文
![Node.js和MySQL“Too many connections”错误](/upload/InfoBanner/zyjiaocheng/904/c822cde302f64d878c575bd74e0392b9.jpg)
我正在使用Node.js为我的Web应用程序运行Web服务器.我还使用node-mysql模块与MySQL服务器连接,以满足我所有的持久数据库需求.
每当我的Node.js应用程序中出现严重错误而导致我的应用程序崩溃时,我会收到一封电子邮件给我.所以,我一直收到这封电子邮件,上面写着“连接太多”的错误.这是错误的一个例子:
Error: Too many connections
at Function.Client._packetToUserObject (/apps/x/node_modules/mysql/lib/client.js:394:11)
at Client._handlePacket (/apps/x/node_modules/mysql/lib/client.js:307:43)
at Parser.EventEmitter.emit (events.js:96:17)
at Parser.write.emitPacket (/apps/x/node_modules/mysql/lib/parser.js:71:14)
at Parser.write (/apps/x/node_modules/mysql/lib/parser.js:576:7)
at Socket.EventEmitter.emit (events.js:96:17)
at TCP.onread (net.js:396:14)
正如你所看到的那样,它告诉我的是错误来自mysql模块,但它没有告诉我在我的应用程序代码中发生了什么问题.
我的应用程序在需要运行一个或多个查询时随时打开数据库连接.在收集完所有查询和数据后,我立即关闭连接.所以,我不明白我怎么能超过151 max_connections限制.
除非我的代码中有一个地方忘记调用db.end()来关闭连接,否则我看不到我的应用程序会如何泄漏.即使出现这样的错误,我也不会收到这些数十封的电子邮件.昨天,我收到差不多100封电子邮件,大致相同的错误.怎么会发生这种情况?如果我的应用程序已经泄漏并随着时间的推移分配了连接,则一旦发生第一个错误,应用程序进程就会崩溃并且所有连接都将丢失,从而阻止应用程序再次崩溃.由于我收到了大约100封电子邮件,这意味着应用程序崩溃了大约100次,并且都在很短的时间内完成.这可能只意味着在我的应用程序的某个地方很多连接在短时间内建立,对吧?
我怎么能避免这个问题?这非常令人沮丧.所有帮助都非常感谢.谢谢
解决方法:
MySQL有一个默认的MAX_CONNECTIONS =’100’不是151,除非你改了它.另外,实际上你有MAX_CONNECTIONS 1.加号1允许root用户登录,即使你已经最大化了连接以便弄清楚实际使用的是什么.当您的连接最大化时,请尝试以root用户身份登录并从MySQL运行以下命令.
mysql> SHOW FULL PROCESSLIST
发布上面这个命令的输出.一旦你真正知道什么消耗了你的资源,你可以去修复它.很容易就是你的代码留下了开放的连接.
您应该查看以下文档:Show Processlist
内容总结
以上是互联网集市为您收集整理的Node.js和MySQL“Too many connections”错误全部内容,希望文章能够帮你解决Node.js和MySQL“Too many connections”错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。