2015-06-17 3 views
3

Я пытаюсь инициализировать набор реплик с тремя узлами. При выполнении rs.initiate() у меня возникла следующая ошибка: «Нет хоста, описанного в новой конфигурации 1 для набора реплик #####, для этого узла»Как запустить набор реплик без использования localhost?

Если я попытаюсь установить первый элемент на «localhost: 27017», то I получите следующую ошибку: «Либо все имена хостов в конфигурации набора реплик должны быть ссылками на localhost, либо не должны быть найдены 1 из 2»

Как я должен использовать свой публичный ip для запуска набора реплик?

+0

Я не хочу, чтобы использовать локальный. Я хочу использовать 3 публичных ips моего сервера, но это не позволит мне инициировать набор таким образом. Когда я пытаюсь использовать общедоступный ip, он дает мою ошибку, которую он не может сопоставить с этим узлом. –

+0

Вы решили эту проблему? – compuhosny

ответ

4

Что вам нужно сделать, это подготовить конфигурацию, которую вы хотите использовать для набора реплик в документе (например config), а затем передать этот документ в качестве параметра метода rs.initiate(config), как это:

config = { 
    _id : "your_replica_set_name", 
    members : [ 
     {_id : 0, host : "yourIpAddress:port1"}, 
     {_id : 1, host : "yourIpAddress:port2"}, 
     {_id : 2, host : "yourIpAddress:port3", arbiterOnly: true}, 
    ] 
} 

rs.initiate(config) 

Подробнее в MongoDB - replSetInitiate command

+1

Я собирался свернуть, потому что у меня была такая же проблема, и я все еще получал ошибку при передаче конфигурации именно так, но тогда я ** указал номер порта ** 27017, хотя он был по умолчанию, и он сработал. – WAF

0

Вы на самом деле нужно установить bindIp: директиву IP-адрес вашего сервера.

Ниже вы можете найти конфигурации по умолчанию:

# network interfaces 
net: 
port: 27017 
bindIp: 127.0.0.1 
Смежные вопросы