web-dev-qa-db-fra.com

Impossible de se connecter à Mongolab, échec de l'obtention de MongoError: auth

J'ai récemment créé un compte sur mongoLab.Lorsque j'essaie de me connecter à la base de données à l'aide de l'instruction ci-dessous.

var mongoose = require('mongoose');
mongoose.connect('mongodb://mk:[email protected]:47742/mkdb');

Je reçois toujours l'erreur suivante

MongoError: auth failed
at Function.MongoError.create (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66
at Callbacks.emit (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3)
at null.messageHandler (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23)
at Socket.<anonymous> (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:259:22)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.Push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)
27
mkuniyil

Assurez-vous d'utiliser la base de données username et password et non le compte username et password de Mlab.

Dans MLab, anciennement MongoLab, procédez comme suit: 

  1. Accédez à Users
  2. Add Database User
  3. Choisissez votre nom d'utilisateur et mot de passe

Vous pouvez maintenant tester cela sur le shell avec mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>

41
Joseph

Mongolab a mis à niveau leurs bases de données 2.6.x vers 3.0.x. Malheureusement, mongo3 a un mécanisme d'authentification différent, les anciens clients ne sont donc pas compatibles.

Mongoose utilise le pilote natif mongo, vous devez donc le mettre à niveau. Cela se fait généralement en mettant à jour votre installation mongo locale.

Pour ceux qui utilisent mongojs, effectuez une mise à niveau vers la dernière version et ajoutez le paramètre authMechanism:'ScramSHA1' dans l'objet options lors de la connexion:

db = mongojs('mongodb://username:[email protected]:32132/mydb', ["mycollection"], {authMechanism: 'ScramSHA1'});
24
gtsouk

Pour moi la solution était:

$ npm install --save --save-exact [email protected]

Selon: L'application Heroku se bloque après la mise à jour de MongoDB vers la version 3.0

9
Oded Regev

Database User create Ici, nous devons savoir que le nom d'utilisateur et le mot de passe de mLab ne sont pas les nom d'utilisateur et mot de passe de notre base de données également ... car nous devons vérifier si nous avons utilisé le nom d'utilisateur et le mot de passe corrects pour la connexion

nous pouvons créer un compte utilisateur de base de données ici ---- >>

Ma connexion const comme suit 

const db ="mongodb://<My database username>:<my database password>.mlab.com:39648/videoplayer"
5
Rumesh Madushanka

ajoutez simplement? authSource = yourDB & w = 1 à la fin de l'URL de la base de données

mongoose.connect ('mongodb: // utilisateur: mot de passe @ hôte/votre DB? authSource = votre DB & w = 1') cela fonctionne pour moi. & w = 1 est important

par exemple 

MONGO_URI = 'mongodb: // kahn: [email protected]: 13402/ecommerce? AuthSource = ecommerce & w = 1';

https://github.com/Automattic/mongoose/issues/4587

Cela m'a sauvé la vie

1
sannimichaelse

1- Assurez-vous que la base de données est opérationnelle . 2- N'oubliez pas de créer l'utilisateur de la base de données pour qu'il dispose des informations d'identification.

Souhaitez que cela vous aidera!

1
Al-Maamari Tareq

Assurez-vous que vous utilisez le nom d'utilisateur et le mot de passe appropriés pour la base de données.

Si vous essayez de vous connecter à db via votre code et que votre nom d'utilisateur et votre mot de passe ont des caractères spéciaux tels que '@', '$' etc., assurez-vous de coder votre URI à l'aide deencodeURIComponent () funtion

exemple: "localhost: // pooja:" + encodeURIComponent ('pooja @ 123') + "/ trymynewdb" , , puis utilisez l'uri énocdé pour vous connecter à la base de données.

0
Pooja S Arkasali

Si votre mot de passe comporte des caractères spéciaux, il est préférable de vérifier la valeur de codage d’URL du caractère spécial présent ici: liste de codage d’URL

Mais je vous suggère fortement de vérifier que vos données ont été envoyées avant de tenter de vous connecter .. Un moyen de le vérifier consiste à console.log les données envoyées ... Exemple:

console.log(process.env.MONGO_ATLAS_PW);
0
Jero Dungog

J'avais cette erreur en utilisant une version plus ancienne de Mongoose (version 3.8.10). Après la mise à niveau vers la dernière version (version 5.0.10), l'erreur a disparu et une connexion a été établie.

Il suffit d’exécuter npm install [email protected] --save .... Mais remplacez la version par la version la plus récente,

0
Mushirih