web-dev-qa-db-ja.com

mLab上のMongoDBデータベースに接続すると認証に失敗する

Parseアプリがあり、アプリのデータベースをmLabのMongoDBインスタンスに移行しようとしています。

私はすでにHerokuにParse Serverのフォークをセットアップしており、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>の代わりにそのユーザーのパスワードを使用しました。ここで何か他のものを使用する必要がありましたか?

22
AdColvin

Dbuserとdbpassは次の方法で取得できます。

heroku config | grep MONGODB_URI

応答からdbuser(example_user)とdbpass(example_pass)を取得します。

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

53
Imjohsep

2016年3月の時点で、mLab.comは、新たな煩わしい認証要件のため、mongo 3.0+のみをサポートしています(サポートとの会話による)。

これはウェブサイトにはありませんでしたが、ここの誰かに役立つことを願っています!

11
lol

特定のデータベースのユーザーを作成するメッセージがあります。このデータベースに接続するにはデータベースユーザーが必要です。今すぐ作成するには、「ユーザー」タブにアクセスし、「データベースユーザーの追加」ボタンをクリックします

7
user3551863

明らかなように思えるかもしれませんが、移行を機能させるには、この文字を削除する必要があります<>

この例では、mongodb:// dbuser:[email protected]:47124/heroku_1ksph3jjのようになります。

3
Leo Melo

将来の訪問者のために-パスワードに特殊文字を使用しないでください。特殊文字をasciiまたはunicodeに変更すると機能しませんmLabmongooseを使用します。

また、mLab資格情報は使用せず、dbユーザー資格情報を使用します。新しいユーザーを作成しました。

例えば。私の場合、@文字を含むパスワードはascii%40URIで、nativemongodbドライバー。しかし、mongooseを使用すると、常にAuthentication Failedを取得していました。特殊文字を削除し、dbはmongooseを介して認証されました。

3
Divyanshu Jimmy

Mongoクライアントのバージョンを確認してください。古いメジャーバージョン(おそらく2.x)の場合は、3.xに更新します。

3
kyasar

パスワードが間違っていたように見えますが、これはHerokuのmLabアドオンによって設定されたと思われます。 mLab UIでこれをリセットする明確な方法はなかったため、最終的に(新しいユーザー名とパスワードで)別のデータベースユーザーを作成し、それで問題なく接続できました。

2
AdColvin

情報だけでは手遅れです。 mLabアドオンがherokuアカウントのアプリケーションに追加されたときに自動作成されたmLabアカウントの情報を取得するには、以下のコマンドを試してください。

heroku config:get MONGODB_URI

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

1
Predhin

Herokuダッシュボード に移動して、設定を確認してください。

名前フィールドの下に、「Reveal Config Vars」という大きなボタンがあります。それをクリックすると、データベースへのURIが付いたMONGODB_URI変数が表示されます。次のようになります。

mongodb:// heroku_user:[email protected]:63295/heroku_user

パスワードは、herokuユーザー名の後のセミコロンの直後です。

0
insp_moore