我尝试使用 rockmongo 连接到我们的集群。
我们的设置是两个分片的设置,每个分片由一个副本集组成。我尝试连接到 mongos 实例,当 rockmongo 连接时,我在尝试列出数据库时收到错误:
Execute failed:not master function (){ return db.getCollectionNames(); }
这与副本集有关,每个人都指出:
$MONGO["servers"][$i] = array("replicaSet" => "xxxxx");
这一切都很好,但是我有两个副本集,据我所知,我应该连接到 mongos 实例,而不是直接连接到集合的成员。
那么如何使用 rockmongo 连接到具有副本集的 mongo 分片设置?
答案1
当您在分片设置中运行时,您不应该单独连接到副本集,而应该只连接到 mongos,它会将连接代理回相应的分片。您是否尝试过替换当前配置以仅指向 mongos 主机(和端口)而不是副本集?
我认为不是,因为 mongos 不会返回“非主”错误。考虑到该错误,我还会分别查看每个副本集并运行 rs.status() 以验证每个副本集都有主副本。