2017-03-22 140 views
0

我知道这是一个讨论的方式,几乎经历了我在SO和谷歌总体上发现的所有主题,但仍然没有解决方案!Mongo在第一次连接时无法连接到服务器

问题

在时间随机点,下面的错误发生

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文件被删除)并重新启动应用程序。现在一切运行顺利。显然这不是一个可以接受的解决方案!

环境和

应用程序使用写的事实:

  • ExpressJS框架(4.15.2版本)
  • MongoJS驱动程序(2.4.0版本)
  • 的NodeJS (版本7.7.3)
  • MongoDB(版本3.4.2)

服务器是使用完全一样的文档中描述的推荐.rpm方法运行的Centos 7.

安装MongoDB的一个VPS(OpenVZ的)。

即使应用程序崩溃并出现上述错误,我可以通过shell连接并发出查询。

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

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

与mongojs使用的连接字符串是以下

var mongojs = require('mongojs'); 
var db = mongojs('mongodb://username:[email protected]:20000/database') 

求救声时刻

请家伙!帮助我......这真的很烦人,并且无法确定它是否是我,驱动程序或设置会让这件事变得糟糕!

在此先感谢

UPDATE

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

+0

你考虑过使用猫鼬吗? –

+0

试过了。同样的错误...甚至尝试过官方的mongo节点驱动程序,但无济于事。 –

+0

没有用户名和密码呢?我相信你的字符串中有东西 –

回答

0

这是什么解决了我们的问题。

更改服务器并从OpenVZ移出到基于KVM的“VPS”。 每个应用程序元素保持不变(app code/node/npm/mongo/drivers等),以及相同的操作系统(仍然是Centos 7)。

没有一个线索,为什么,但应用程序的一个星期左右,而不是每隔几分钟或几小时崩溃在新服务器上运行完美...

希望这可以帮助别人!

相关问题