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)
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:
Users
Add Database User
Vous pouvez maintenant tester cela sur le shell avec mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>
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'});
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
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"
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- 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!
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.
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);
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,