![那么如何使用 rockmongo 连接到具有副本集的 mongo 分片设置?](https://linux22.com/image/585992/%E9%82%A3%E4%B9%88%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20rockmongo%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%85%B7%E6%9C%89%E5%89%AF%E6%9C%AC%E9%9B%86%E7%9A%84%20mongo%20%E5%88%86%E7%89%87%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
我尝试使用 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() 以验证每个副本集都有主副本。