web-dev-qa-db-fra.com

L'authentification MongoDB sur mLab échoue

Création d'un nouveau compte mLab et création d'une base de données selon les étapes décrites ici http://docs.mlab.com/#create-sub . Essayer de se connecter à la base de données à l’aide de mongo Shell et du module mongoose Node.js mais je vois l’erreur «Authentication Failed» dans les deux cas. 

Dans Mongo Shell, la commande est, j'ai vérifié les informations d'identification

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

Erreur:

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

Utilisation de mangouste

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); 
});

});

Error :: MongoConnect Error MongoError: échec de l'authentification

Y a-t-il autre chose à faire sur la console mLab ou autre chose que je pourrais mal faire ou que je manque?

9
Brst dev7

Vous devez créer un nouvel utilisateur pour la base de données dans le compte mLab.et vous connecter avec cet utilisateur créé sur le compte mlab. Cliquez ensuite sur la base de données spécifique et cliquez sur l'onglet Utilisateurs, voir dans l'image ci-dessous: users tab and add new user

Maintenant, remplissez le formulaire et créez un utilisateur pour la base de données. Voir dans l'image ci-dessous:

enter image description here

Maintenant, dans le code, utilisez la chaîne suivante pour la connexion:

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:'));
16
Deep Kakkar

Je rencontre ce même problème et dans mon cas, c’était un problème de compatibilité de version client, comme expliqué ici .

Ma base de données mLab mongo était la version 3.4.9, mais la version en ligne de commande du client que je possédais, qui provenait du dépôt officiel Ubunty Xenial, était la version 2.6.10.

Cette erreur avec "authentification a échoué" bien que les informations d'identification utilisées (informations d'identification de la base de données, et non les informations d'identification de l'utilisateur mlab) soient correctes.

8
Julian Cerruti

Vous utilisez probablement vos informations d'identification mLab pour dbuser et dbpassword

Vous devriez créer un nouvel utilisateur pour la base de données in à l'aide de l'interface Web de mLab et essayer de vous connecter avec cet utilisateur. 

Voici comment créer un utilisateur pour une base de données dans mLab: 

  1. Sélectionner une base de données
  2. Basculer vers l'onglet Utilisateurs
  3. Cliquez sur add database user
5
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:'));

Remarque: Vous devez créer un utilisateur pour votre base de données sur Mlab. Ce ne sont pas vos identifiants de compte sur Mlab . Ici monest remplacé par user et dbpassword remplacé par 123456 Si votre mot de passe contient un caractère spécial comme @, # vous devez y échapper en entourant 'dbuser': 'dbpassword' 

4
Afrikhero

Connexion à partir de Robomongo/Robo 3T? assurez-vous que le mécanisme d'authentification est SCRAM-SHA-1

 Auth Mechanism

0
Abhi

êtes-vous certain d'utiliser le nom d'utilisateur et le mot de passe de votre base de données?.

sélectionnez votre base de données et cliquez sur les utilisateurs, puis vous pouvez trouver votre nom d'utilisateur db

0
daniel