it-swarm.com.de

Es konnte keine Verbindung zu Mongolab hergestellt werden. MongoError abrufen: Die Authentifizierung ist fehlgeschlagen

Ich habe kürzlich ein Konto in mongoLab erstellt. Wenn ich versuche, eine Verbindung zur Datenbank herzustellen, verwenden Sie die unten stehende Anweisung.

var mongoose = require('mongoose');
mongoose.connect('mongodb://mk:[email protected]:47742/mkdb');

Ich erhalte immer die folgende Fehlermeldung

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)
27
mkuniyil

Stellen Sie sicher, dass Sie die Datenbank username und password verwenden, nicht das Konto username und password von Mlab.

In MLab, ehemals MongoLab, machen Sie Folgendes 

  1. Navigiere zu Users
  2. Add Database User
  3. Wählen Sie Ihren Benutzernamen und Ihr Passwort

Jetzt können Sie dies mit .__ auf der Shell testen. mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>

41
Joseph

Mongolab hat seine 2.6.x-Datenbanken auf 3.0.x aktualisiert. Leider hat mongo3 einen anderen Authentifizierungsmechanismus, so dass alte Clients nicht kompatibel sind.

Mongoose verwendet den nativen Mongo-Treiber, daher müssen Sie ihn aktualisieren. Dies geschieht normalerweise durch ein Upgrade Ihrer lokalen Mongo-Installation.

Aktualisieren Sie für Benutzer, die Mongojs verwenden, auf die neueste Version und fügen Sie nach dem Verbindungsaufbau den Parameter authMechanism:'ScramSHA1' im Optionsobjekt hinzu:

db = mongojs('mongodb://username:[email protected]:32132/mydb', ["mycollection"], {authMechanism: 'ScramSHA1'});
24
gtsouk

Für mich war die Lösung:

$ npm install --save --save-exact [email protected]

Laut: Heroku-App stürzt ab, nachdem MongoDB auf 3.0 aktualisiert wurde

9
Oded Regev

Database User create Hier müssen wir wissen, dass mLab-Benutzername und -Passwort nicht der Benutzername und das Kennwort für unsere Datenbank sind. Dort müssen wir überprüfen, ob wir den richtigen Benutzernamen und das richtige Passwort für die Verbindungszeichenfolge verwendet haben

wir können hier ein Datenbank-Benutzerkonto erstellen ---- >>

Mein Anschluss ist wie folgt 

const db ="mongodb://<My database username>:<my database password>.mlab.com:39648/videoplayer"
5

fügen Sie einfach? authSource = yourDB & w = 1 bis zum Ende der DB-URL hinzu

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

z.B 

MONGO_URI = 'mongodb: // kahn: [email protected]: 13402/ecommerce? AuthSource = ecommerce & w = 1';

https://github.com/Automattic/mongoose/issues/4587

Das hat mein Leben gerettet

1
sannimichaelse

1- Vergewissern Sie sich, dass die Datenbank in Betrieb ist 2- Vergessen Sie nicht, den Datenbankbenutzer mit Zugriffsberechtigungen zu erstellen.

Wünsche das wird dir helfen!

1

Stellen Sie sicher, dass Sie den richtigen DB-Benutzernamen und das richtige Kennwort verwenden.

Wenn Sie versuchen, über Ihren Code eine Verbindung zu db herzustellen und Ihr Benutzername und Ihr Kennwort Sonderzeichen wie '@', '$' usw. enthalten, stellen Sie sicher, dass Sie Ihren URI mit encodeURIComponent () funtion kodieren

beispiel: "localhost: // pooja:" + encodeURIComponent ('pooja @ 123') + "/ trymynewdb" , Verwenden Sie dann den enocded-uri, um eine Verbindung zu db herzustellen.

0

Sie können versuchen, eine Verbindung über mshell herzustellen. Während der Verbindungsherstellung mit mongoose trat ein ähnliches Problem auf, obwohl ich den Benutzernamen der Datenbank und das richtige Kennwort angegeben hatte.

geben Sie einfach den folgenden Befehl in das Terminal ein

mongo ds239412.mlab.com:39412/videoplayer11 -u dbuser -p dbpassword ( Befehl wird für Sie unterschiedlich sein, siehe hier ).

und entfernen Sie den Code in Ihrer Modelldatei, mit der Sie über Mungo verbunden waren.

Hat für mich gearbeitet. Fröhliche Gesichter.

0
magma123

Wenn Ihr Kennwort Sonderzeichen enthält, überprüfen Sie am besten den URL-Kodierungswert des hier vorhandenen Sonderzeichens: URL-Kodierungsliste

Ich empfehle Ihnen jedoch dringend, zu überprüfen, ob Ihre Daten zuerst gesendet wurden, bevor Sie versuchen, eine Verbindung herzustellen. Eine Möglichkeit, dies zu überprüfen, besteht darin, die Daten, die gesendet werden, in console.log anzuzeigen.

console.log(process.env.MONGO_ATLAS_PW);
0
Jero Dungog

Ich habe diese Fehlermeldung erhalten, als ich eine ältere Version von mongoose (Version 3.8.10) verwendet habe. Nach dem Upgrade auf die neueste Version (Version 5.0.10) verschwand der Fehler und es wurde eine Verbindung hergestellt.

Führen Sie einfach npm install [email protected] aus --save .... Ersetzen Sie jedoch die Version durch die neueste Version.

0
Mushirih