Настройте Mon go, используя mongodb + srv - PullRequest
0 голосов
/ 24 февраля 2020

Я запускаю пн go на docker, поэтому хост по умолчанию: localhost, порт: 27017, имя пользователя: root пароль: example

Теперь я хочу подключиться через Строка подключения: mongodb+srv://root:example@localhost/sim Но я получаю сообщение об ошибке:

Причина: com.mongodb.MongoConfigurationException: Невозможно найти запись TXT для хоста localhost

In У меня есть файл hosts:

127.0.0.1       localhost
127.0.0.1 _mongodb._tcp.localhost

Пн go работает на docker:

Docker ps
 mongo                     "docker-entrypoint.s…"   13 days ago         Up 3 hours          0.0.0.0:27017->27017/tcp     

Ubuntu 18.04

1 Ответ

1 голос
/ 25 февраля 2020

Чтобы использовать схему mongodb + srv, вам потребуется несколько записей DNS:

  • Запись узла прямого просмотра (A) для каждого узла mongod
  • TXT-запись для cluster
  • SRV-запись для кластера

При добавлении 127.0.0.1 _mongodb._tcp.localhost, который фактически является хост-записью.

Содержимое записи SRV должно указывать несколько частей информации, включая номера портов и имена хостов для узлов, предоставляющих услугу.
См. RF C 2782 или Запись SRV в Википедии.

SRV запись для набора реплик MongoDB может выглядеть следующим образом:

_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost1.mydomain.com.
_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost2.mydomain.com.
_mongodb._tcp.mycluster.mydomain.com. 60 IN SRV 0 0 27017 mongohost3.mydomain.com.

Ожидается, что запись TXT будет указывать параметры URI для строки подключения, например "authSource=admin&replicaSet=myreplset". Обратите внимание, что ssl=true явно не указано, но подразумевается схемой SRV.

Эта запись в блоге одного из разработчиков MongoDB, когда эта функция была введена, может быть полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...