节点版本: 10.9.0
猫鼬版本: 4.9.10
生产中的Mongo版本: 3.6
我正在尝试从本地计算机使用Node.js中的猫鼬连接到MongoDB中的副本集。但是,我的连接因错误而超时:
MongoError: failed to connect to server [\*.\*.\*.\*:27017] on first connect [MongoError: connection 13 to \*.\*.\*.\*:27017 timed out]
但是,我可以从本地计算机的mongo shell连接到各个节点。连接到副本集的Nodejs代码如下:
var options_compute = {
auth:{
authdb:'admin'
},
user:'username',
pass:'password',
replset:{
auto_reconnect:true,
socketOptions:{
keepAlive:30000,
connectTimeoutMS:30000,
socketTimeoutMS:30000
}
},
server:{
socketOptions:{
keepAlive:30000,
connectTimeoutMS:30000,
socketTimeoutMS:30000
}
}
};
var ip = "mongodb://"+public_ip1+":27017,"+public_ip2+":27017,"+public_ip2+":27017/db_name?replicaSet=rs0";
connect_compute = mongoose.createConnection('ip', options_compute);
MongoDB实例托管在运行Amazon Linux的AWS中。当我将代码部署到AWS时,该代码可以运行,但是不能在本地环境中运行。
PS:
我无法使用Mongoose的 .connect()进行连接,因为我需要保持连接对象。
我不能使用任何mongo连接字符串,例如:mongodb:// username:password @ ip:port / database,因为我的密码包含@