Подключение к реплике 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
успешно подключиться к набору реплик.