Mongoose: MongoError: Authentifizierung fehlgeschlagen

Erstellt am 2. Okt. 2016  ·  10Kommentare  ·  Quelle: Automattic/mongoose

Ich habe mongodb in mongolab.
Wenn ich mich per Befehl damit verbinde

mongo uri/$db -u user -p pass

es ist okay.
Wenn ich Mungo benutze und mich verbinde

mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}')

Ich habe einen Fehler

MongoError: Authentication failed

Ich benutze Mungo 4.6.1

needs clarification

Hilfreichster Kommentar

Hmm auch auf welcher Datenbank ist der Benutzer definiert? MongoDB Benutzer zu dbs scoped, auch wenn sie Quer db Privilegien, also wenn der Benutzer Sie haben nicht auf definierte db Sie werden so etwas wie setzen müssen mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') , wenn der Benutzer ist in der 'admin'-DB definiert.

Wenn Sie mongodb 3.x verwenden, verwenden Sie möglicherweise SCRAM-SHA-1-Authentifizierung oder nicht. Versuchen Sie beides:

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

Alle 10 Kommentare

Außerdem habe ich nachgesehen - der Fehler wird in der 4.4.20 Version nicht reproduziert. Es funktioniert richtig

Enthalten Ihr Benutzername und Ihr Passwort keine alphanumerischen Zeichen? Ähnliche Probleme sind in der Vergangenheit beim Umgang mit Zeichen wie: in Passwörtern aufgetreten

Außerdem, welche Version von Mungo und Mongodb?

Mongodb 'v3'
Nein, es gibt keine nicht-alphanumerischen Symbole.

Hmm auch auf welcher Datenbank ist der Benutzer definiert? MongoDB Benutzer zu dbs scoped, auch wenn sie Quer db Privilegien, also wenn der Benutzer Sie haben nicht auf definierte db Sie werden so etwas wie setzen müssen mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') , wenn der Benutzer ist in der 'admin'-DB definiert.

Wenn Sie mongodb 3.x verwenden, verwenden Sie möglicherweise SCRAM-SHA-1-Authentifizierung oder nicht. Versuchen Sie beides:

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

@vkarpov15 , Ja, es hat geholfen! Vielen Dank!

Ich habe mit node.js eine Verbindung zu cloud.mongodb.com hergestellt, verstehe aber nicht, warum und wie ich 2 erfolgreiche Verbindungen hergestellt habe, aber zu anderen Zeiten waren die Verbindungen nicht erfolgreich.
image

In der Konsole sehe ich

die server/replset/mongos-Optionen sind veraltet, alle ihre Optionen werden auf der obersten Ebene des Optionsobjekts unterstützt [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,fa
mily,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,bu
fferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions,appname,auth]

(node:3268) UnhandledPromiseRejectionWarning: Nicht behandelte Promise-Ablehnung (Ablehnungs-ID: 1): MongoError: Authentifizierung fehlgeschlagen
(node:3268) DeprecationWarning: Nicht behandelte Promise-Ablehnungen sind veraltet. Zukünftig wird der Node.js-Prozess bei Ablehnungen von Zusagen, die nicht verarbeitet werden, mit einem Exit-Code ungleich Null beendet.

Ich habe es versucht, aber es funktioniert nicht,

Mungo v4.5.3
mongodb v3.4.7

errMsg:
MongoError: Authentication failed. 14|gougouS | at Function.MongoError.create (/www/website/gougouServer/source/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)

Fügen Sie einfach ?authSource=yourDB&w=1 am Ende der DB-URL hinzu

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
diese Arbeit für mich. &w=1 ist wichtig

Fügen Sie einfach ?authSource=yourDB&w=1 am Ende der DB-URL hinzu

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
diese Arbeit für mich. &w=1 ist wichtig

Danke mein Herr. :3 gute antwort

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen