【问题标题】:mongoDB set name does not matchmongoDB 集名称不匹配
【发布时间】:2013-01-29 16:38:39
【问题描述】:

我的机器上运行了 3 个 mongod 演示复制服务器。我使用以下命令创建复制服务器:

F:\>mongod --replSet test2 --dbpath 2 --port 27112 --oplogSize 50 --logpath log.2 --logappend
all output going to: log.2

像这样我在 27111 端口上有 test1,在 27112 端口上有 test2,在 27113 端口上有 test3。然而在配置中我得到一个错误:

cfg = {
        "_id" : "test1",
        "members" : [
                {
                        "_id" : 0,
                        "host" : "localhost:27111"
                },
                {
                        "_id" : 1,
                        "host" : "localhost:27112"
                },
                {
                        "_id" : 2,
                        "host" : "localhost:27113"
                }
        ]
}
> rs.initiate( cfg )
{
        "errmsg" : "couldn't initiate : set name does not match the set name host localhost:27112 expects",
        "ok" : 0
}

现在我该怎么做才能让它匹配?

【问题讨论】:

    标签: mongodb replication database


    【解决方案1】:

    我要运行的所有集合都应该具有相同的名称。 例如,如果我运行

    mongod --replSet test2 --dbpath 2 --port 27112 --oplogSize 50 --logpath log.2 --logappend
    all output going to: log.2
    

    那么我打算加入的其他 mongo 服务器应该具有相同的名称 test2

    【讨论】:

      【解决方案2】:

      "cfg" = { "_id":="test1" }中使用的名称或变量

      应该使用下面使用的名称来确认该复制集中所有成员的参数replSet

      那么一切都会为你顺利进行

      "start mongod --replSet "test1" --logpath "1.log" --dbpath C:\Replica\rs01 --port 27017 --oplogSize 64
      

      祝你好运

      【讨论】:

      • 当然。我在 docker-compose 命令和配置中的 replSet 名称中有一个不同的名称,所以出现了问题。
      【解决方案3】:

      尝试使用您的机器名称或 127.0.0.1。最佳做法是使用 DNS 名称。

      【讨论】:

        【解决方案4】:

        MongoDB 副本集不接受 localhost。在将节点添加到副本集时尝试使用实际的机器名称,如下所示:

        rs.add("MY_MACHINE_NAME:27017");
        

        【讨论】:

          【解决方案5】:

          添加副本集时,三个副本的 --replset 应该相同。例如,如果主要是“rs01”,那么其他两个也应该相同。

          【讨论】:

            【解决方案6】:

            以下步骤对我有用:

            mongod --port 27017 --dbpath "C:\MongoDB\data01" --replSet rs0 --bind_ip localhost
            mongod --port 27018 --dbpath "C:\MongoDB\data02" --replSet rs0 --bind_ip localhost
            

            这两行在不同的端口启动了两个不同的 mongo 实例。 在第二个实例中,我在 mongod.conf 中添加了 replSet=rs0。

            然后通过此命令在 rs0 节点中添加辅助节点:

            rs.add("localhost:27018")
            

            【讨论】:

              猜你喜欢
              • 2011-09-01
              • 1970-01-01
              • 2017-06-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-05-03
              • 2018-01-07
              • 1970-01-01
              相关资源
              最近更新 更多