2013-02-13 118 views
7

我有3個mongod演示覆制服務器在我的機器上運行。我用下面的命令來創建複製服務器:mongoDB集名稱不匹配

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

喜歡我對27111端口,test2的test1的關於27112端口和TEST3在27113端口。然而在配置中,我得到一個錯誤:

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 
} 

現在我該怎麼做才能使它匹配?

回答

9

我要運行的所有集合都應該有相同的名稱。 因爲如果我跑

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

那麼其他蒙戈服務器我就打算在該組的情況下,應該有相同的名字test2

0

請嘗試用您的機器名稱或127.0.0.1。這是使用DNS名稱的最佳做法。

+0

試圖{主機: 「127.0.0.1:1:27111」}和它不工作。 – sadaf2605 2013-02-14 08:12:06

1

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

使用的名稱或變量應對於該複製集中的所有成員,使用參數replSet的以下名稱進行確認。

然後事情會順利地爲您

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

好運

0

的MongoDB replicaset不接受localhost。嘗試使用計算機的實際名稱,同時增加節點到replicaset如下:

rs.add("MY_MACHINE_NAME:27017"); 
0

當添加副本套,--replset應該是相同的所有三個。例如,如果主要是「rs01」,那麼其他兩個也應該是相同的。

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 

這兩行啓動不同的端口兩個不同的蒙戈實例。 在第二個實例中,我在mongod.conf中添加了replSet = rs0。

然後由該命令加在RS0節點次級:

rs.add("localhost:27018")