Как запустить набор реплик без использования 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