web-dev-qa-db-fra.com

MongoError: l'authentification a échoué la chaîne de connexion de la mangouste

Je peux me connecter à la base de données via le terminal, mais obtenir cette erreur en utilisant mangouste et gulp. mongoose/node_modules/mongodb/lib/mongodb/connection/base.js: 246 MongoError: échec de l'authentification

Ma chaîne de connexion est:

mongodb://usr:psw@localhost:27017/dbname

Une idée de ce que ça peut être?

13
Sunkat

J'ai installé MEAN à https://bitnami.com/stack/mean pour Windows 7 Lors de l'installation, je crée le mot de passe est 123456

Syntaxe make connect to mongodb with mongoose

mongoose.connect("mongodb://[usr]:[pwd]@localhost:[port]/[db]",{auth:{authdb:"admin"}});

Si vous n'avez pas

{auth:{authdb:"admin"}}

Vous obtiendrez le message d'erreur "MongoError: échec de l'authentification"

Exemple: mongo-test/app.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://root:123456@localhost/test',{auth:{authdb:"admin"}});
mongoose.set('debug', true); // turn on debug
30
Thien Nguyen

il suffit d'ajouter ?authSource=yourDB&w=1 à la fin de l'URL de la base de données

 mongoose.connect('mongodb://user:password@Host/yourDB?authSource=yourDB&w=1')

ce travail pour moi. &w=1 est important

11
ali karimi

Vous voudrez peut-être faire quelque chose comme ça ...

var opt = {
    user: config.username,
    pass: config.password,
    auth: {
        authdb: 'admin'
    }
};
var connection = mongoose.createConnection(config.database.Host, 'mydatabase', config.database.port, opt);

L'option 'authdb' est la base de données sous laquelle vous avez créé l'utilisateur.

6
Leon
mongoose.connect("mongodb://[Host]/[db]", { auth:{

    authdb: "admin",
    user: [username],
    password: [pw]

}}).then(function(db){

    // do whatever you want

    mongoose.connection.close() // close db

})
4
anniex

Avez-vous un utilisateur configuré pour dbname? Par défaut, aucun utilisateur n'est obligé de se connecter à la base de données, sauf si vous en avez explicitement défini un. Si ce n'est pas le cas, essayez simplement de vous connecter à mongodb://localhost:27017/dbname et voyez si vous obtenez toujours une erreur.

4
Kamagatos

J'ai trouvé la solution hier, on dirait que lorsque vous créez un utilisateur à partir du shell mongo, il crée SCRAM-SHA-1 au lieu de MongoDB-CR. Donc, la solution pour créer un nouvel utilisateur avec l'authentification MongoDB-CR.

Échec de l'authentification MongoDB-CR

1
user3531155

Cela a fonctionné pour moi pour mongod --version = db version v3.6.13

mongoose.connect('mongodb://localhost/expressapi', {
    auth: {
        authdb: "admin",
        user: "root",
        password: "root",

    }
});
0
Madhuraman Ghimire
mongo mongodb://usr:psw@localhost:27017/dbname
  • Le mot de passe doit être alphanumérique uniquement
  • L'utilisateur doit également être disponible dans db 'dbname' (Remarque: même si l'utilisateur est super administrateur)

Avec les changements ci-dessus, il s'est connecté avec succès.

0
Sandeep PC

assurez-vous simplement que votre base de données est créée. et aussi si votre utilisateur n'est pas ajouté dans la base de données d'administration, assurez-vous de l'ajouter en mettant db.createUser (... {user: 'admin', pwd: 'admin', roles: ['root']}. ..)

0
Apoorv Bankey