Подключение к базе данных MongoDB на mLab не проходит проверку подлинности
у меня есть приложение для анализа, и я пытаюсь перенести базу данных моего приложения в экземпляр MongoDB на mLab.
у меня уже есть вилка сервера разбора, настроенная на Heroku, и я использую надстройку Mlab MongoDB Heroku.
у меня есть база данных по 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>
. Я должен использовать что-то еще?
8 ответов
Вы можете получить dbuser и dbpass с:
heroku config | grep MONGODB_URI
возьмите dbuser (example_user) и dbpass (example_pass) из ответа:
MONGOLAB_URI: mongodb://example_user:example_pass@mlab.com:12345/db
по состоянию на март 2016 года, mLab.com поддерживает только mongo 3.0+ (в соответствии с разговором с поддержкой) из-за их новых обременительных требований к аутентификации.
этого не было на сайте, но я надеюсь, что это поможет кому-то здесь!
есть сообщение для создания пользователя для конкретной базы данных: Пользователь базы данных, необходимые для подключения к этой базе данных. Чтобы создать его сейчас, перейдите на вкладку "Пользователи" и нажмите кнопку "Добавить пользователя базы данных"
Мне так жаль, что это может показаться очевидным, но вы должны удалить эти символы для миграции на работу
в вашем примере будет выглядеть так: mongodb://dbuser:dbpassword@ds047124.mlab.com:47124/heroku_1ksph3jj
для будущих посетителей - Не используйте специальные символы В пароль .Даже если вы измените специальный символ ascii или unicode это не будет работать на mLab используя мангуста.
также не используйте учетные данные mLab, используйте учетные данные пользователя db . Я создал нового пользователя.
например. Для меня пароль, содержащий @ символ был заменен на ascii значение %40 в URI, который работал при использовании уроженца в MongoDB драйвер. Но при использовании мангуста я всегда получал Ошибка . Я удалил специальные символы, и db был аутентифицирован через мангуста.
похоже, что это был неправильный пароль, который, я предполагаю, был настроен надстройкой mLab Heroku. Не было очевидного способа сбросить это в интерфейсе mLab, поэтому в конце концов я создал другого пользователя базы данных (с новым именем пользователя и паролем) и смог подключиться к этому просто отлично.
Я знаю, что опоздал, просто для информации. Для получения информации о учетной записи mLab, которая была создана автоматически, когда mlab addon был добавлен в приложение в вашей учетной записи heroku, попробуйте следующую команду.
heroku config:get MONGODB_URI
Ref: http://algebra.sci.csueastbay.edu/~grewe/CS6320/Mat/NodeJS/Heroku/Heroku_MLabMongoDB.html