Mongo 首次连接时无法连接到服务器

Mongo failed to connect to server on first connect

我知道这是讨论问题的一种方式,并且已经遍历了我在 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文件被删除)并重新启动应用程序。现在一切顺利。显然这不是公认的解决方案!

环境与事实

该应用程序使用以下语言编写:

服务器是 VPS (OpenVZ) 运行 Centos 7.

MongoDB 完全按照文档中的描述使用推荐的 .rpm 方法安装。

即使应用程序因上述错误而崩溃,我也能够通过 shell.

连接并发出查询

日志中没有关于该错误或可能导致该错误的内容。唯一的启动警告是关于使用 xfs 而不是 ext4 以及关于使用 MongoDB 和 OpenVZ。

对 mongod.conf 所做的唯一配置更改是侦听端口和启用授权。

mongojs使用的连接字符串如下

var mongojs = require('mongojs');
var db = mongojs('mongodb://username:password@127.0.0.1:20000/database')

呼救时刻

拜托各位!帮帮我...这真的很烦人,无法确定是我、驱动程序还是设置搞砸了!

提前致谢

更新

删除打包版本的数据库,手动安装,还是没有结果!错误仍然存​​在...

这是解决我们问题的方法。

更改了服务器并从 OpenVZ 移出到 KVM "based" VPS。 每个应用程序元素都保持不变(app code/node/npm/mongo/drivers 等),并且相同 OS(仍然是 Centos 7)。

不知道为什么,但该应用程序 运行 在新服务器上完美运行了大约一个星期,而不是每隔几分钟或几小时就崩溃...

希望这对某人有所帮助!