webentwicklung-frage-antwort-db.com.de

Die Verbindung zur MongoDB-Datenbank auf mLab schlägt fehl

Ich habe eine Parse-App und versuche, die Datenbank meiner App auf eine MongoDB-Instanz in mLab zu migrieren.

Ich habe bereits eine Reihe von Parse-Servern auf Heroku eingerichtet und verwende das mLab MongoDB-Add-on von Heroku.

Ich habe eine Datenbank auf mLab namens heroku_1ksph3jj, und ich sollte in der Lage sein, eine Verbindung mit der folgenden Vorlage herzustellen:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

Jeder Versuch gibt jedoch Folgendes zurück:

Server returned error on SASL authentication step: Authentication failed.

Ich bin mir nicht sicher, was ich ersetzen soll <dbuser> und <dbpassword> mit. Ich habe einen Datenbankbenutzer mit demselben Namen wie meine Datenbank: heroku_1ksph3jjz, also habe ich das benutzt. Und ich habe das Passwort für diesen Benutzer anstelle von <dbpassword>. Hätte ich hier etwas anderes benutzen sollen?

22
AdColvin

Du kannst den dbuser und den dbpass bekommen mit:

heroku config | grep MONGODB_URI

Holen Sie sich den Datenbankbenutzer (example_user) und den Datenbankpass (example_pass) aus der Antwort:

MONGOLAB_URI: mongodb://example_user:[email protected]:12345/db

53
Imjohsep

Ab März 2016 unterstützt mLab.com nur noch Mongo 3.0+ (laut Support-Konversation), da die Authentifizierungsanforderungen jetzt sehr belastend sind.

Dies war nicht auf der Website, aber ich hoffe es hilft jemandem hier!

11
lol

Es wird eine Nachricht zum Erstellen eines Benutzers für die bestimmte Datenbank angezeigt: Ein Datenbankbenutzer muss eine Verbindung zu dieser Datenbank herstellen. Um jetzt eine zu erstellen, rufen Sie die Registerkarte "Benutzer" auf und klicken Sie auf die Schaltfläche "Datenbankbenutzer hinzufügen"

7
user3551863

Es tut mir so leid, dass dies offensichtlich erscheint, aber Sie müssen diese Zeichen entfernen <>, damit die Migration funktioniert

In Ihrem Beispiel würde dies so aussehen: mongodb: // dbuser: [email protected]: 47124/heroku_1ksph3jj

3
Leo Melo

Für zukünftige Besucher- verwenden Sie keine Sonderzeichenim Passwort. Auch wenn Sie das Sonderzeichen in ascii ändernoder Unicodefunktioniert nicht für mLabmit Mungo.

Verwenden Sie auch keine mLab-Anmeldeinformationen, sondern db-Benutzeranmeldeinformationen. Ich habe einen neuen Benutzer angelegt.

Z.B. Für mich wurde ein Passwort mit dem Zeichen @durch asciivalue % 40in URI ersetzt. Das hat funktioniert, wenn native mongodbdriver verwendet wurde. Aber bei der Verwendung von Mungo bekam ich immer Authentifizierung fehlgeschlagen. Ich habe Sonderzeichen entfernt und die Datenbank wurde über Mungo authentifiziert.

3
Divyanshu Jimmy

Überprüfen Sie Ihre Mongo-Client-Version. Wenn es sich um eine ältere Hauptversion (wahrscheinlich 2.x) handelt, aktualisieren Sie diese auf 3.x

3
kyasar

Es sieht so aus, als wäre es das falsche Passwort, das von Herokus mLab-Add-On eingerichtet wurde. Es gab keine offensichtliche Möglichkeit, dies in der mLab-Benutzeroberfläche zurückzusetzen, so dass ich am Ende einen anderen Datenbankbenutzer (mit einem neuen Benutzernamen und einem neuen Kennwort) erstellte und in der Lage war, eine Verbindung damit herzustellen.

2
AdColvin

Ich weiß, ich bin zu spät, nur zur Information. Um die Informationen des mLab-Kontos zu erhalten, das automatisch erstellt wurde, als das mLab-Addon zur Anwendung in Ihrem Heroku-Konto hinzugefügt wurde, versuchen Sie den folgenden Befehl.

heroku config:get MONGODB_URI

Ref: http://algebra.sci.csueastbay.edu/~grewe/CS6320/Mat/NodeJS/Heroku/Heroku_MLabMongoDB.html

1
Predhin

Gehen Sie einfach zu Ihrem Heroku-Dashboard und überprüfen Sie Ihre Einstellungen.

Unter dem Namensfeld befindet sich eine große Schaltfläche "Konfigurationsvariablen anzeigen". Klicken Sie darauf und Sie sehen eine MONGODB_URI-Variable mit einem URL zu Ihrer Datenbank. Es wird ungefähr so ​​aussehen:

mongodb: // heroku_user: [email protected]: 63295/heroku_user

Ihr Passwort steht direkt nach dem Semikolon nach dem Heroku-Benutzernamen.

0
insp_moore