Ответ 1
Вы можете получить dbuser и dbpass с помощью:
heroku config | grep MONGODB_URI
Захватите dbus (example_user) и dbpass (example_pass) из ответа:
MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db
У меня есть приложение 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>
. Должен ли я использовать что-то еще здесь?
Вы можете получить dbuser и dbpass с помощью:
heroku config | grep MONGODB_URI
Захватите dbus (example_user) и dbpass (example_pass) из ответа:
MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db
По состоянию на март 2016 года, mLab.com поддерживает только mongo 3.0+ (согласно разговору с поддержкой) из-за их новых обременительных требований к аутентификации.
Это не было на сайте, но я надеюсь, что это поможет кому-то здесь!
Появится сообщение для создания пользователя для конкретной базы данных: Пользователь базы данных должен подключиться к этой базе данных. Чтобы создать его сейчас, перейдите на вкладку "Пользователи" и нажмите кнопку "Добавить пользователя базы данных"
Мне очень жаль, что это может показаться очевидным, но вы должны удалить эти символы < > для перехода на работу
В вашем примере будет выглядеть так: MongoDB://DbUser: [email protected]: 47124/heroku_1ksph3jj
Проверьте версию клиента mongo. Если он находится в старшей основной версии (возможно, 2.x), обновите его до 3.x
Похоже, что это был неверный пароль, который, как я предполагаю, был настроен с помощью дополнения Heroku mLab. Не было очевидного пути к reset этому в пользовательском интерфейсе mLab, поэтому в конце я создал другого пользователя базы данных (с новым именем пользователя и паролем) и смог подключиться к этому просто отлично.
Для будущих посетителей - не используйте специальные символы в пароле. Даже если вы измените специальный символ на ascii или unicode, он не работает для mLab, используя mongoose.
Также не используйте учетные данные mLab, используйте учетные данные пользователя db. Я создал нового пользователя.
Eg. Для меня пароль, содержащий символ @, был заменен на ascii значение % 40 в URI, который работал при использовании native mongodb. Но при использовании mongoose я всегда получал Ошибка аутентификации. Я удалил специальные символы, а db был аутентифицирован с помощью мангуста.
Я знаю, что я слишком поздно, просто для информации. Для получения информации об учетной записи mLab, которая была создана автоматически при добавлении админки mLab к приложению в вашей учетной записи heroku, попробуйте выполнить приведенную ниже команду.
heroku config:get MONGODB_URI
Ref: http://algebra.sci.csueastbay.edu/~grewe/CS6320/Mat/NodeJS/Heroku/Heroku_MLabMongoDB.html