2

谁能解释在什么情况下会发生以下错误?

database error { 
[MongoError: no valid replicaset members found]
name: 'MongoError',
message: 'no valid replicaset members found' 
} 

这是我连接到副本集的方式:

var url = format("mongodb://%s:%s@%s/%s?authSource=%s&replicaSet=%s&re‌​adPreference=%s&read‌​PreferenceTags=%s&co‌​nnectTimeoutMS=%s&so‌​cketTimeoutMS=%s", username, pswd, replicationSet, db, authdb, replicaSetName, readPreference, readPreferenceTags, 5000, 5000);
var db = mongojs(url);
4

2 回答 2

0

This message can appear although there are valid replicaset members available if you're using a deprecated version of the mongodb driver as mentionned in https://github.com/strongloop/loopback-connector-mongodb/issues/319 (thanks brasskazoo for pointing it out). You should check your version and upgrade if necessary.

In the meantime, reconfiguring your replica set may bring all members of the replicaset back up and temporarily fix the situation. The command is rs.reconfig() as documented in https://docs.mongodb.com/manual/reference/method/rs.reconfig/

于 2019-08-19T15:51:22.643 回答
0

在没有辅助设备的情况下,与主设备相比,什么是“最新的”。主节点上发生了一些变化,次要节点尚未复制。如果客户端不断地写(到主),它不能下台。

当然,在副本集中有少数节点的情况下也是如此。就像三个节点之一。

所以.. 在副本集中,您必须始终让大多数投票成员启动并运行。(2/3, 3/4, 3/5,...)

你能用'mongo'命令直接从命令行连接那个RS的主节点吗?如果是并且您的应用程序不能,那么您的应用程序的连接字符串有错误。

如果您的 RS 没有“主要”,请检查(不同的)节点 mongodb.log 文件中的错误消息,说明什么是错误的。

于 2016-10-11T13:19:48.540 回答