【问题标题】:Problem connecting to the "Primary" of the replica set in MongoDB连接到 MongoDB 中副本集的“主要”时出现问题
【发布时间】:2020-05-12 08:34:45
【问题描述】:

我在命令行中创建了一个 MongoDB 副本集。它们在端口 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 shell documentation中指定的这种方式:要将mongo shell连接到副本集,您可以在连接字符串中指定副本集成员和名称:

标签: mongodb mongodb-replica-set


【解决方案1】:

您正在连接到单个节点。您需要通过在参数中传递副本集名称来指定要连接到副本集。例如

mongo "mongodb://127.0.0.1:47017,127.0.0.1:47018,127.0.0.0.1:47019/?replicaSet=replA"

这里的副本集名称是replA。严格来说,您不需要指定整个种子列表。只要您可以连接到任何成员并指定副本集名称,那么副本集就会自动将您路由到主节点。我们指定一个完整的种子列表,因为这允许客户端尝试所有成员,以防其中一个不可用。

有关完整说明,请参阅Connecting to a replica set 的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多