Подтвердить что ты не робот

Подключение к базе данных MongoDB на mLab завершает проверку подлинности

У меня есть приложение Parse, и я пытаюсь перенести базу данных приложений на экземпляр MongoDB на mLab.

У меня уже есть вилка Parse Server, настроенная на Heroku, и я использую надстройку Heroku mLab MongoDB.

У меня есть база данных на mLab, называемая heroku_1ksph3jj, и я должен иметь возможность подключиться к ней со следующим шаблоном:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

Однако каждая попытка возвращает:

Server returned error on SASL authentication step: Authentication failed.

Я не уверен, что заменить <dbuser> и <dbpassword> на. У меня есть пользователь базы данных с тем же именем, что и моя база данных: heroku_1ksph3jjz, поэтому я использовал это. И я использовал пароль для этого пользователя вместо <dbpassword>. Должен ли я использовать что-то еще здесь?

4b9b3361

Ответ 1

Вы можете получить dbuser и dbpass с помощью:

heroku config | grep MONGODB_URI

Захватите dbus (example_user) и dbpass (example_pass) из ответа:

MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db

Ответ 2

По состоянию на март 2016 года, mLab.com поддерживает только mongo 3.0+ (согласно разговору с поддержкой) из-за их новых обременительных требований к аутентификации.

Это не было на сайте, но я надеюсь, что это поможет кому-то здесь!

Ответ 3

Появится сообщение для создания пользователя для конкретной базы данных: Пользователь базы данных должен подключиться к этой базе данных. Чтобы создать его сейчас, перейдите на вкладку "Пользователи" и нажмите кнопку "Добавить пользователя базы данных"

Ответ 4

Мне очень жаль, что это может показаться очевидным, но вы должны удалить эти символы < > для перехода на работу

В вашем примере будет выглядеть так: MongoDB://DbUser: [email protected]: 47124/heroku_1ksph3jj

Ответ 5

Проверьте версию клиента mongo. Если он находится в старшей основной версии (возможно, 2.x), обновите его до 3.x

Ответ 6

Похоже, что это был неверный пароль, который, как я предполагаю, был настроен с помощью дополнения Heroku mLab. Не было очевидного пути к reset этому в пользовательском интерфейсе mLab, поэтому в конце я создал другого пользователя базы данных (с новым именем пользователя и паролем) и смог подключиться к этому просто отлично.

Ответ 7

Для будущих посетителей - не используйте специальные символы в пароле. Даже если вы измените специальный символ на ascii или unicode, он не работает для mLab, используя mongoose.

Также не используйте учетные данные mLab, используйте учетные данные пользователя db. Я создал нового пользователя.

Eg. Для меня пароль, содержащий символ @, был заменен на ascii значение % 40 в URI, который работал при использовании native mongodb.  Но при использовании mongoose я всегда получал Ошибка аутентификации. Я удалил специальные символы, а db был аутентифицирован с помощью мангуста.

Ответ 8

Я знаю, что я слишком поздно, просто для информации. Для получения информации об учетной записи mLab, которая была создана автоматически при добавлении админки mLab к приложению в вашей учетной записи heroku, попробуйте выполнить приведенную ниже команду.

heroku config:get MONGODB_URI

Ref: http://algebra.sci.csueastbay.edu/~grewe/CS6320/Mat/NodeJS/Heroku/Heroku_MLabMongoDB.html