Impossible de se connecter à mongolab, Se MongoError: auth échoué
J'ai récemment créé un compte dans mongoLab.Quand je suis en train d'essayer de se connecter à la base de données à l'aide de la déclaration ci-dessous.
var mongoose = require('mongoose');
mongoose.connect('mongodb://mk:[email protected]:47742/mkdb');
Je suis 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)
- db nom d'utilisateur et le mot de passe est correct uniquement
- semble comme mongolab n'est pas de fournir la connexion . J'ai essayé de ping ds047742.mongolab.com mais il est dit Impossible de se connecter à un hôte distant
- salut, vous pouvez consulter notre dépannage de docs ici: docs.mongolab.com/connecting/#help. se sentir libre pour nous envoyer un email si vous avez des questions ou ne peut pas démarrer.
- merci @Chris Chang, qui aide vraiment
- Peut-être liées à cela: stackoverflow.com/questions/30659213/...
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous utilisez la base de données
username
etpassword
pas le compteusername
etpassword
de Mlab.Dans MLab, anciennement MongoLab, procédez de la manière suivante
Users
Add Database User
Maintenant, vous pouvez le tester sur la coque avec
mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>
Mongolab mis à jour leur 2.6.x bases de données à la version 3.0.x. Malheureusement mongo3 a un autre mécanisme d'authentification afin d'anciens clients ne sont pas compatibles.
Mangouste est d'utiliser le native mongo pilote, donc vous devez le mettre à jour. Ceci est habituellement fait par la mise à niveau de votre région mongo installation.
Pour ceux qui utilisent mongojs, la mise à niveau vers la dernière version et ajouter le
authMechanism:'ScramSHA1'
paramètre dans les options de l'objet lors de la connexion:mongoose.connect
?Pour moi la solution a été:
Selon: Heroku application se bloque après MongoDB mis à jour 3.0
Ici, nous devons savoir que mLab nom d'utilisateur et le Mot de passe ne sont pas les nom d'utilisateur et le mot de passe pour Notre base de données trop...il y a pour nous de vérifier si nous avons utilisé le nom d'utilisateur correct et le mot de passe pour la connexion de la Chaîne
nous pouvons créer une Base de données de compte d'utilisateur dans l'ici---->>
Ma connexion const comme suit
1 - assurez-vous que la db est en place et en cours d'exécution.
2 - ne pas oublier de créer le db utilisateur d'avoir accès à des informations d'identification.
Souhaitez que va vous aider !
il suffit d'ajouter ?authSource=yourDB&w=1 à la fin de la db url
mangouste.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
ce travail pour moi . &w=1 est important
e.g
https://github.com/Automattic/mongoose/issues/4587
Cela a sauvé ma vie
J'ai été faire cette erreur tout en utilisant une ancienne version de la mangouste(version 3.8.10).Après la mise à niveau vers la dernière version(la version 5.0.10) l'erreur a disparu et une connexion a été établie.
Il suffit d'exécuter npm install [email protected] -enregistrer ....Mais remplacer la version avec la version la plus récente,
Assurez-vous d'utiliser la bonne db nom d'utilisateur et mot de passe.
Si vous essayez de vous connecter à la db à l'aide de votre code et de votre nom d'utilisateur et le mot de passe a tout speacial caractères comme'@','$', etc , assurez-vous que vous encodez votre URI à l'aide de encodeURIComponent() funtion
exemple : "localhost://pooja:"+encodeURIComponent('pooja@123')+"/trymynewdb"
ensuite, utilisez la enocded uri pour se connecter à la db.
Si votre mot de passe contient des caractères spéciaux, il serait préférable de vérifier l'url valeur de codage de caractères spéciaux présents ici: l'encodage de l'url de la liste
Mais je vous suggère fortement de vérifier vos données d'être envoyé en premier, avant de tenter de se connecter.
Une façon de le vérifier est de la console.journal des données envoyées.
Exemple: