mongoDB集名称不匹配

时间:2013-02-13 23:37:27

标签: mongodb replication database

我的机器上运行了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
}

现在我需要做些什么来使它匹配?

6 个答案:

答案 0 :(得分:9)

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

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

然后我打算在该集合中的其他mongo服务器应该具有相同的名称test2

答案 1 :(得分:1)

"cfg" = { "_id":="test1" }

中使用的名称或变量 对于该复制集中的所有成员,

应使用以下参数replSet确认。

然后事情会顺利进行

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

rs.add("MY_MACHINE_NAME:27017");

答案 4 :(得分:0)

添加副本集时, - replset对于所有三个都应该相同。例如,如果对于主要它是" rs01",对于其他两个也应该是相同的。

答案 5 :(得分:0)

以下步骤对我有用:

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")