我的配置如下,我的 MongoDB 不需要用户名或密码:
mongo: {
module: 'sails-mongo',
url: "mongodb://127.0.0.1:27017/mydb",
replSet: {
servers: [
{
host: "127.0.0.1",
port : 27018
},
{
host: "127.0.0.1",
port : 27019
}
],
options: {connectWithNoPrimary:true, rs_name:"rs0"}
}
}
它工作正常,这意味着我没有收到连接错误,我可以进行查询。但是当我关闭 127.0.0.1:27017 时,127.0.0.1:27018 变成了 PRIMARY,就好像我做了一个 rs.status()。在此之后,我不再能够进行任何查询并继续获得以下信息:
错误:没有打开的连接
我确信我在本地机器中正确设置了副本集,因为我使用 MongoDB 本机驱动程序来测试上述场景(将 PRIMARY 和 SECONDARY 接管为 PRIMARY)并且没有问题。
var url = 'mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/mydb?w=0&wtimeoutMS=5000&replicaSet=sg1&readPreference=secondary';
mongodb.MongoClient.connect(url, function(err, result) {
if(err || result === undefined || result === null) {
throw err;
} else {
db = result;
}
});