2015-04-20 10 views
7

Sto tentando di distribuire il set di repliche mongodb. Ho reso l'istanza di mongodb come principale della replica. Ora sto cercando di aggiungere un'altra istanza mongodb ospitata al diverso indirizzo IP, come secondario della replica, ma sto ottenendo il seguente errore:Errore durante l'aggiunta di un'istanza secondaria nel set di repliche mongodb

rs0:PRIMARY> rs.add("<ip address>:27017") 
{ 
    "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 
} 

Quello che sto facendo male?

risposta

0

L'indirizzo IP del membro del set di repliche appena aggiunto si risolve in localhost? O il tuo membro già esistente si risolve in localhost? In entrambi i casi, un set di repliche non consentirà la configurazione mista localhost/non-localhost.

Dai un'occhiata allo source code location di questo messaggio.

Inoltre, il Mongo guide on sharding dice questo:

Se si utilizza uno “localhost” o 127.0.0.1 come la porzione nome host del qualsiasi identificatore host, ad esempio come argomento host per addShard o il valore con l'opzione --configdb run time, è necessario utilizzare "localhost" o 127.0.0.1 per tutte le impostazioni host per tutte le istanze di MongoDB nel cluster. Se si mescolano gli indirizzi localhost e l'indirizzo host remoto , MongoDB commetterà un errore.

Lo stesso vale per i set di repliche.

+0

Qualche idea su come affrontare questo quando si cerca di aggiungere un membro tramite un tunnel SSH? –

+0

Scusa, non posso dire di stare zitto. Ma in teoria il tunnel dovrebbe essere trasparente e quindi non fare la differenza. Ma devi provarlo. –

+0

Il problema è che il tunnel è quindi accessibile come "localhost: ", ma ho bisogno di avere il mongodb primario associato a 127.0.0.1 e 172.17.0.1, perché i contenitori in Docker devono accedervi. È quindi questo 172.17.0.1 che causa il problema. Ecco una spiegazione migliore https://dba.stackexchange.com/questions/173911/mongodb-replica-set-over-ssh-tunnels –

4

Affronto questo problema quando ho provato a eseguire due istanze mongod nella stessa macchina. Getta errore quando ho fornire come

rs.add("localhost:27027") 
    (or) 
    rs.add("127.0.0.1:27027") 

dove 27027 è il numero di porta secondaria.

Soluzione:

Passare il nome host invece dell'indirizzo IP

rs.add("myhostname:27027") 
Problemi correlati