Как запустить набор реплик без использования localhost?

Я пытаюсь инициализировать набор реплик с 3 узлами. Во время выполнения rs.initiate() Я получил следующую ошибку: "В новой конфигурации 1 не указан хост для набора реплик #####, сопоставленного с этим узлом"

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

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

2 ответа

Что вам нужно сделать, это подготовить конфигурацию, которую вы хотите использовать для набора реплик в документе (например, 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

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

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

# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
Другие вопросы по тегам