web-dev-qa-db-ja.com

mLab認証でのMongoDBが失敗する

新しいmLabアカウントを作成し、ここの手順に従ってデータベースを作成しました http://docs.mlab.com/#create-sub mongo Shellとmongoose Node.jsモジュールを使用してデータベースに接続しようとしていますが、両方のケースで「認証に失敗しました」エラーが表示されます。

Mongo Shellでは、コマンドは、資格情報を再確認しました

mongo ds012345.mlab.com:56789/dbname -u dbuser -p dbpassword

エラー:

MongoError: authentication fail
at Function.MongoError.create (E:\Gatsby\notmongoose\node_modules\mongodb-core\lib\error.js:31:11)

Mongooseの使用

var mongoose = require('mongoose')
, Admin = mongoose.mongo.Admin;

var uri = '<correct mongo uri here>';

var connection = mongoose.createConnection(uri,
{    
User: '<uname>',
Password: '<pwd>'
});
connection.on('open', function() {

console.log('connection established!!!');

new Admin(connection.db).listDatabases(function(err, result) {
    console.log('listDatabases succeeded');
    console.log(err);
    console.log(result); 
});

});

エラー:: MongoConnect Error MongoError:authentication fail

MLabコンソールで行う必要のあることや、間違っていることや行方不明になっていることはありますか?

9
Brst dev7

MLabアカウントでデータベースの新しいユーザーを作成し、作成したユーザーでmlabアカウントにログインする必要があります。次に、特定のデータベースをクリックし、ユーザータブをクリックします。下の画像を参照してください。 users tab and add new user

ここでフォームに入力し、データベースのユーザーを作成します。以下の画像を参照してください。

enter image description here

ここで、コードでは接続に次の文字列を使用します。

var mongoose = require('mongoose');

var mongoDB = "mongodb://<username>:<password>@ds241489.mlab.com:41489/<DB Name>";

mongoose.connect(mongoDB, {
    useMongoClient: true
});

var db = mongoose.connection;

db.on('error', console.error.bind(console, 'MongoDB connection error:'));
18
Deep Kakkar

here で説明したように、この同じ問題に遭遇し、私の場合はクライアントバージョンの互換性の問題でした。

MLab mongoデータベースはバージョン3.4.9でしたが、公式のUbunty Xenialリポジトリから入手したクライアントコマンドラインバージョンはバージョン2.6.10でした。

使用されている資格情報(mlabユーザー資格情報ではなくデータベース資格情報)が正しい場合でも、「認証に失敗しました」というエラーが発生しました。

8
Julian Cerruti

おそらく、dbuserおよびdbpasswordのmLab資格情報を使用している可能性があります。

データベースの新しいユーザーを作成する mLabのWebインターフェースを使用して、そのユーザーでログインしてみてください。

MLabでデータベースのユーザーを作成する方法は次のとおりです。

  1. データベースを選択
  2. Usersタブに切り替えます
  3. add database user
6
Kayvan Mazaheri
 var mongoose = require('mongoose');

 var mongoDB = "mongodb://user:[email protected]:13936/brary";

 mongoose.connect(mongoDB, {
    useMongoClient: true
 });

 var db = mongoose.connection;

 db.on('error', console.error.bind(console, 'MongoDB connection error:'));

注:Mlabでデータベースのユーザーを作成する必要があります。これは、Mlabのアカウントログイン詳細ではありません。ここで、myはserおよびdbpasswordに置き換えられます123456に置き換えられますパスワードに@などの特殊文字が含まれる場合、#uで囲む必要があります'dbuser': 'dbpassword'

5
Afrikhero

Robomongo/Robo 3Tから接続していますか?認証メカニズムがSCRAM-SHA-1であることを確認してください

Auth Mechanism

1
Abhi

データベースのユーザー名とパスワードを使用しますか?ほとんどの場合、ユーザーはアカウントのユーザー名を使用するためです。

データベースを選択してユーザーをクリックすると、データベースのユーザー名を見つけることができます

0
daniel