2016-10-10 49 views
2

任何人都可以解释在哪种情况下发生以下错误?MongoError:找不到有效的复制对象成员

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

这是我如何连接到副本集:

var url = format("mongodb://%s:%[email protected]%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); 
+0

嗨Prabhu Kathiresan - 你得到这个错误?如果是这样,你能告诉我们你如何连接到副本集? –

+0

var url = format(“mongodb://%s:%s @%s /%s?authSource =%s&replicaSet =%s&readPreference =%s&readPreferenceTags =%s&connectTimeoutMS =%s&socketTimeoutMS =%s”,username,pswd,replicationSet, db,authdb,replicaSetName,readPreference,readPreferenceTags,5000,5000); var db = mongojs(url); 这是我如何连接副本集 –

+0

得到了什么? –

回答

0

在没有次级什么是“跟上时代的”比较初级的情况。主要还有什么副本尚未复制。 如果客户端不断写入(主要),它不能下降。

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

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

你可以用'mongo'命令直接从命令行连接RS的主节点吗? 如果是,而你的应用程序不能,那么你的应用程序的连接字符串会出错。

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

+0

如何处理这种情况?有没有解决这个问题? –