#mongodb
#mongodb
Вопрос:
Независимо от того, как я пытаюсь инициализировать свой основной узел, он всегда получает имя "name" : "127.0.0.1:27017"
, поэтому любые добавления удаленного узла в набор реплик завершаются ошибкой с этим сообщением:
«ошибка sg»: «Либо все имена хостов в конфигурации набора реплик должны быть ссылками на localhost, либо ни одно не должно быть; найдено 1 из 2»
Вот мой .conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: mongodb.primary, 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
Как я должен правильно инициализировать свой основной узел, чтобы он не привязывался только к 127.0.0.1
?
mongodb.primary
Вышеизложенное можно разрешить на всех машинах;
Вот полная ошибка:
rs0:PRIMARY> rs.add('mongodb.secondary1:27017')
{
"operationTime" : Timestamp(1552552019, 1),
"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,
"codeName" : "NewReplicaSetConfigurationIncompatible",
"$clusterTime" : {
"clusterTime" : Timestamp(1552552019, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
Ответ №1:
Проблема четко сформулирована: первый элемент набора реплик привязан к localhost
Для привязки ко всем IP-адресам (не рекомендуется использовать это без аутентификации, хотя для тестирования это нормально)
net:
bindIp: 0.0.0.0
Смотрите этот документ здесь
В вашем случае есть вероятность, что экземпляры MongoDB в DO по умолчанию привязаны к localhost. Однако вам может потребоваться привязать их к другому IP-адресу, используя
net.bindIp
параметр конфигурации. Пожалуйста, имейте в виду, это приведет к тому, что экземпляр MongoDB будет доступен, если он подключится к выбранному порту. Рекомендуется включить аутентификацию, если экземпляр MongoDB привязан к IP, отличному от localhost.