我已经在命令行中创建了一个MongoDB复制集,它们运行在47017,47018,47019端口。它们运行在47017,47018,47019端口。当我进行
mongo --port 47017
它总是倾向于连接到副本集的 "次要 "成员。
$ mongo --port 47017
connecting to: mongodb://127.0.0.1:47017/?compressors=disabled&gssapiServiceName=mongodb
MongoDB server version: 4.2.6
s1:SECONDARY>
为什么它总是连接到辅助系统而不是主系统?有什么设置应该被启用吗?
你正在连接到一个单一的节点。你需要通过在参数中传递复制集的名称来指定你要连接到复制集,比如说。
mongo "mongodb://127.0.0.1:47017,127.0.0.1:47018,127.0.0.0.1:47019/?replicaSet=replA"
这里复制集的名称是 补办. 严格来说,你不需要指定整个种子列表。只要你能连接到任何成员,并且你指定了副本集的名称,那么副本集就会自动将你路由到主要成员。我们指定一个完整的种子列表,因为这允许客户端在其中一个成员不可用时尝试所有成员。
参见文档中的 连接到副本集 以获得完整的描述。