【问题标题】:How to find the replica set name?如何找到副本集名称?
【发布时间】:2020-12-31 10:17:04
【问题描述】:

我在 mongodb.com 使用所有默认值创建了一个 M0 实例。我从 Atlas Connection 对话框复制了 URI 连接字符串。在 mongoDB Compass 中被识别并自动填写连接详情表单。

它运行了几个星期,我可以浏览我的文档。然后突然间我得到:

加载导航时出错:'not master and slaveOk=false':建议将连接对话框中的读取首选项更改为 Primary Preferred 或 Secondary Preferred,或为完整拓扑连接提供副本集名称。

我搜索并建议明确指定Replica Set Name。自动设置将Read Preference 设置为主要,Replica Set Name 为空白。

为什么会突然出现这个错误,如何找到要使用的副本集名称?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    查找副本集名称:

    打开 mongo shell 并输入命令:

    rs.status()
    

    这将为您提供一个带有副本集名称的文档(在键 set 下):

    {
        "set" : "Name of your replica set",
        ...
    }
    

    【讨论】:

      【解决方案2】:

      其实你可以在 Mongo Shell 上轻松输入以下内容

      rs.status().set
      

      这将返回副本集名称

      【讨论】:

        【解决方案3】:

        为什么会突然出现这个错误

        错误消息被触发是因为有一个Replica Set Election 将您正在连接的实例的statePrimary 更改为Secondary

        connecting using MongoDB Compass,并且没有指定副本集名称。该连接将是与实例的直接连接,而不是与副本集的连接(自动拓扑发现)。

        如何找到要使用的副本集名称?

        MongoDB Atlas 项目页面上,选择左侧菜单中的Deployment 链接。在Processes 选项卡下,使用Topology 视图,您应该会看到副本集名称(这应该是单击Deployment 时显示的默认视图)。

        一般,副本集名称是集群名称加-shard-0。即集群名称test,副本集名称为test-shard-0

        【讨论】:

          【解决方案4】:

          在 mongo shell 中 - 我执行了 rs.status() 并复制了集合名称。 在 Compass 客户端中,我从左侧选择了先前使用的/“最近”连接字符串,然后单击字符串框上方的“单独填写连接字段”链接。 单击“更多选项”选项卡并将集名称粘贴到“副本集名称”字段中(我的以前是空的) 这为我修复了它并且能够连接。

          【讨论】:

            【解决方案5】:

            在本地连接到主 mongod 服务器时,您会注意到提示具有副本集名称。示例:

            ssh -i "keyfile.pem" MongoDPrimary:27017 (连接到 MongoD 服务器) mongo(连接到 MongoD 数据库)

            s0:PRIMARY>(Mongo Shell 提示)

            在上面的提示中: “s0”是指副本集名称 “主要”是指主要副本。

            rs.status() 虽然很好,但需要您对可以进行身份​​验证的数据库进行身份验证

            【讨论】:

              猜你喜欢
              • 2018-12-13
              • 1970-01-01
              • 2017-02-01
              • 2022-01-19
              • 2023-03-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-10-04
              相关资源
              最近更新 更多