Почему я не могу подключиться к набору реплик с помощью оболочки mongo?

Я могу подключиться к набору реплик, используя следующую команду из оболочки mongo версии 3.2.11. Но то же самое не работает с оболочкой mongo v3.4.1.

mongo --host \
      "replicaSet1/10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000" mydbname \
      -u root -p root \
      --authenticationDatabase admin

 [main] Error: Failed to parse mongodb:// URL: mongodb://replicaSet1/10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname :

Я прочитал здесь, что формат адреса набора реплик не изменено по сравнению с выпуском v 3.4.1.

Почему я не могу подключиться к БД? Какова ошибка синтаксического анализа в соответствии с новым форматом (если она есть).


person Nilesh    schedule 23.01.2017    source источник


Ответы (1)


Это известная регрессия в MongoDB 3.4.0/3.4.1: SERVER-27289: mongo --host replSet/Host:Port больше не работает . Исправление было зафиксировано для предстоящего выпуска MongoDB 3.4.2.

Вы можете обойти это в затронутой оболочке 3.4.x mongo, используя стандартную ссылку URI строки подключения MongoDB вместо этого:

mongo --host mongodb://10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname?replicaSet=replicaSet1

Вы также можете использовать стандартную строку подключения MongoDB в качестве простого аргумента (т.е. без параметра --host):

mongo mongodb://10.10.10.15:27001,10.10.10.16:27002,10.10.10.17:27000/mydbname?replicaSet=replicaSet1

Я прочитал здесь, что формат адреса набора реплик не изменился с момента выпуска v 3.4.1.

Поддержка использования стандартного формата строки подключения MongoDB в параметре --host была добавлена ​​в MongoDB 3.4, чтобы согласовать синтаксис строки подключения оболочки mongo с форматом, используемым всеми официальными драйверами.

В настоящее время это изменение не указано в руководстве по MongoDB 3.4, поэтому я поднял DOCS-9808 уточнить.

person Stennie    schedule 23.01.2017
comment
в чем разница между replicaSet1 и replset? Вы должны ставить набор реплик два раза? - person Facundo Chambo; 09.10.2017
comment
@FacundoChambo Упс... ошибка транскрипции. Хороший улов! Я исправил примеры, так как имя replicaSet должно появляться только один раз. - person Stennie; 09.10.2017