Подключение к реплике MongoDB с помощью rmongodb

Кто-нибудь смог подключиться к набору реплик MongoDB с помощью rmongodb? Как бы я ни настраивал mongo.create Я получаю ошибку аутентификации, даже если тот же хост / имя пользователя / пароль работают нормально при подключении через mongo ракушка.

Мой код эквивалентен:

> mongo.create(c("rs-1.mysite.com:12345","rs-2.mysite.com:12345"), "rsName", "user", "password", "my_db")
Unable to connect to replset
Authentication failed.

Обновить:

Просматривая журналы всех узлов в наборе реплик, я не вижу попыток аутентификации, когда я запускаю приведенный выше код. Следовательно, это может быть rmongodb ошибка.

2 ответа

Решение

Как заметил Сим, rmongodb 1.0.3 не разрешает имена хостов.

Однако возможно подключиться к наборам реплик из rmongodb с несколькими оговорками:

  • Вы должны включить все имена хостов (если первичный список не найден в начальном списке хостов, rmongodb не сможет подключиться)
  • имена хостов должны быть предоставлены в виде IP-адресов
  • если вы используете пользователя с правами администратора, вы должны сначала авторизоваться в базе данных администратора (это, по крайней мере, ожидаемое поведение, но стоит отметить)
  • Я мог только заставить соединение работать, не предоставляя имя replSet

Итак, моя рабочая строка подключения выглядит так:

mongo.create(c("192.168.1.123:27017","192.168.1.124:27018","192.168.1.125:27017"),"","user","password", "thedb")

NB: я проверял это только с MongoDB 2.2.0.

Глядя на источник C, кажется, что rmongodb не разрешает имена хостов в IP-адреса. Единственный способ это работает, если вы передаете строку IP-адреса в драйвер...

Передав IP-адрес и номер порта, вы можете подключиться к одному из узлов. Я до сих пор не могу получить rmongodb успешно подключиться к набору реплик.

Другие вопросы по тегам