我知道这是一个讨论问题的方式,并且几乎每个我在SO和google上发现的主题都经历过,但仍然没有解决方案!
问题
在随机时间点,发生以下错误
MongoError: failed to connect to server [127.0.0.1:20000] on first connect
at Pool.<anonymous> (/home/user/node_modules/mongodb-core/lib/topologies/server.js:326:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:189:7)
at Connection.<anonymous> (/home/user/node_modules/mongodb-core/lib/connection/pool.js:270:12)
at Object.onceWrapper (events.js:291:19)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:192:7)
at Socket.<anonymous> (/home/user/node_modules/mongodb-core/lib/connection/connection.js:185:10)
at Object.onceWrapper (events.js:291:19)
at emitNone (events.js:86:13)
解决方案
终止应用程序,重新启动mongod
服务(删除.lock文件)并重新启动应用程序。现在一切顺利。显然,这不是一个公认的解决方案!
环境和事实
应用程序使用:
编写服务器是运行Centos 7的VPS(OpenVZ)。
使用推荐的.rpm
方法安装MongoDB,完全按照文档中的描述进行安装。
即使应用程序因上述错误而崩溃,我也可以通过shell连接并发出查询。
日志中没有关于该错误或可能导致错误的内容。唯一的启动警告是关于使用xfs而不是ext4以及将MongoDB与OpenVZ一起使用。
对mongod.conf进行的唯一配置更改是侦听端口并启用授权。
与mongojs一起使用的连接字符串如下
var mongojs = require('mongojs');
var db = mongojs('mongodb://username:password@127.0.0.1:20000/database')
寻求帮助的时刻
请大家!帮助我...这真的很烦人,无法确定是不是我,驱动程序或设置搞砸了!
提前致谢
更新
删除了数据库的打包版本并执行了手动安装,但仍然没有结果!错误仍然存在......
答案 0 :(得分:0)
这就解决了我们的问题。
更改了服务器并从OpenVZ移出到基于KVM的“基于”VPS。 每个应用程序元素保持不变(应用程序代码/节点/ npm / mongo /驱动程序等)和相同的操作系统(仍然是Centos 7)。
没有一个线索可以解决原因,但应用程序在新服务器上运行完美大约一周,而不是每隔几分钟或几小时崩溃......
希望这有助于某人!