J'essaie de me connecter à une base de données MongoLab mais je reçois toujours l'erreur suivante lors de la connexion:
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
Le code que j'utilise pour me connecter est:
var mongoose = require("mongoose");
mongoose.connect("mongodb://username:[email protected]:61474/apitest");
mongoose.connection.on('error', function (err) {
console.log(err);
});
Lorsque je me connecte à l'aide du shell, je n'ai aucun problème. Qu'est-ce que je fais mal?
J'ai rencontré un problème similaire lors de la connexion de la base de données mongo à l'aide de mangouste. Après avoir exploré un peu, j'ai découvert que mongoLab utilise l'authentification SCRAM-SHA-1. Reportez-vous à la question ci-dessous. J'ai essayé de mettre à niveau ma mangouste vers la V4.1.11, puis cela fonctionne pour moi.
Si j'avais moi-même commis cette erreur, j'ai commis deux erreurs (merci Idos):
mongo --version
à vérifier.Suivez les instructions de cette page MongoDB pour ajouter leurs clés et leurs référentiels à vos sources APT afin de mettre à niveau et de maintenir à jour votre installation MongoDB.
J'ai rencontré le même problème pendant que j'essayais d'importer des données de l'environnement local vers le serveur.
Ces 2 paramètres peuvent être importants, cela a fonctionné après que je les ai mis:
--authenticationMechanism 'MONGODB-CR'
--authenticationDatabase "admin"
Faites attention au mécanisme d'authentification, cela peut être différent. Vérifiez cette partie de la documentation: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism