2015-12-04 46 views
3

我是mongodb的新手,所以這個複製對我來說有點混亂。我按照教程here。 我已成立2的mongod例如在我的機器:在同一臺機器上添加輔助副本集?

localhost:27018 
localhost:27019 

用這個命令:

mongod --dbpath /home/db2 --port 27019 --replSet "rs1" 
mongod --dbpath /data/db1 --port 27018 --replSet "rs1" 

當我嘗試連接並使用此set命令的設置複製

mongo --port 27019 
rs1:PRIMARY> rs.add("localhost:27018") 

它總是說:

{ 
"ok" : 0, 
"errmsg" : "Either all host names in a replica set configuration must 
be localhost references, or none must be; found 1 out of 2", 
"code" : 103 
} 

請幫忙嗎?

+0

對於使用*「localhost」或「127.0.0.1」,Mongo非常挑剔。因此,如果您將實例的地址指定爲「127.0.0.1」,則無法通過「本地主機」地址添加其他副本成員... –

+0

@安德斯博恩霍爾姆,您對此有何看法?有可能在同一臺機器上運行多個mongo實例嗎?我只想做這個測試 – DennyHiu

+0

是的,看下面:-) –

回答

3

這將是更好,如果你(你的用戶名像[email protected]後在終端右可用)選擇機器名以代替localhost,

像RS1:PRIMARY> rs.add( 「10gen.local:27018」)

作爲最佳做法,始終使用邏輯名稱來定義複製對象。

+0

你是對的!我在我的第一個mongod實例(27018)中寫了rs.add('GIGABYTE-PC:27019'),它正常工作。謝謝 – DennyHiu

+0

請投票正常工作:) –

+0

等一下。我只需要時間來確認。我只是將數據添加到我的PRIMARY實例(27018),並期望它將在SECONDARY實例中複製,但是我得到此錯誤:錯誤:{「$ err」:「not master and slaveOk = false」,「code」 :13435} – DennyHiu

相關問題