MongoDB: всегда получает 127.0.0.1 при инициализации основного узла

#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.