So verbinden Sie Mongodb-Clients mit der lokalen Meteor MongoDB


78

Wie kann ich Robomongo (oder einen anderen Mongodb-Client) mit der Mongodb-Instanz verbinden, die von meiner lokalen Meteor-Anwendung erstellt wird?


Hallo @ user3330705 Wenn Sie der Meinung sind, dass die Antwort mehr als nützlich ist und tatsächlich vollständig / am besten ist, können Sie sie als akzeptierte Antwort markieren, damit die Leser dieses Beitrags wissen, dass sie funktioniert.
Serkan Durusoy


Ich bin auf OS X, verwendet Robomongo: Ich habe nur localhostund Port 3001ohne Authentifizierung für die Verbindung verwendet.
Aditya MP

Antworten:


122

Stellen Sie sicher, dass Meteor auf localhost ausgeführt wird. Öffnen Sie ein Terminalfenster und führen Sie den meteorBefehl aus. Es wird auf localhost: 3000 ausgeführt, wenn Sie nicht zum Port gewechselt haben.

Öffnen Sie während der Ausführung ein separates Terminalfenster und führen Sie den meteor mongoBefehl aus. Dadurch wird eine MongoDB-Shell geöffnet und Sie erfahren, mit welchem ​​Port eine Verbindung hergestellt wird. Dies ist normalerweise 3001 ab Version 0.7.1.1 oder 3002, wenn früher. Es wird so etwas sagen127.0.0.1:3001/meteor

Gehen Sie zu Robomongo (oder Ihrer bevorzugten Mongodb-Client-Software) und erstellen Sie eine neue Verbindung. Stellen Sie dabei sicher, dass Sie die Verbindungsadresse in localhost und die angegebene Portnummer ändern. Sie müssen / meteor nicht zusätzlich definieren, wenn Ihr Client nicht auf einer Standarddatenbank besteht.

Wie unter https://stackoverflow.com/a/22023284/1064151 ausgeführt, benötigen einige Treiber möglicherweise bestimmte Zeilenenden, Trennzeichen oder einen anderen Zeichenfluss. Zum Beispiel möchte ObjCMongoDB, ein C-basierter Treiber, dass die URL am Ende 127.0.0.1:3001/mit diesem Extra versehen wird /, oder es funktioniert nicht. Überprüfen Sie daher unbedingt die Dokumentation Ihres Treibers / Clients.


Ich versuche das Gleiche. Ich benutze einen MongoDB-Treiber, um in meine Meteor MongoDB zu schreiben. Bevor ich es benutzte, 127.0.0.1:3002wie du oben gesagt hast. Jetzt verstehe ich, dass der Port auf verschoben wurde, :3001aber diese Adresse funktioniert immer noch nicht für mich. Hat sich auch der Datenbankname geändert? Um klarer zu sein, 127.0.0.1:3002brauchte ich nach dem Herstellen einer Verbindung zu meinem lokalen Host auch meinen Datenbanknamen, d meteor.collection. H. Hat sich dies auch mit dem Update geändert?
Nate

1
Herausgefunden. Eine weitere Antwort für einen bestimmten MongoDB-Treiber wurde hinzugefügt.
Nate

1
@Nate Ich habe gerade die Antwort aktualisiert, um diese Informationen wiederzugeben. Danke für den Zeiger.
Serkan Durusoy

Es ist schön, über ObjCMongodb und für Robomongo Client zu wissen, es ist nicht notwendig zu geben /, ich denke 3001 ist genug, ich habe es getestet und es funktioniert gut für mich
Sasikanth

Das hat bei mir nicht funktioniert. Ich bin unter Windows mit Robomongo. Meine Hosts-Datei enthält 192.168.56.111 my-vm und ich kann mit my-vm: 3000 eine Verbindung zu meiner Meteor-App herstellen , sodass ich weiß, dass die App ausgeführt wird. Wenn ich versuche, eine Verbindung mit my-vm: 3001 herzustellen, kann keine Verbindung hergestellt werden - irgendwelche Ideen?
JoeTidee

34

Der einfachste Weg, um die aktuellen Konfigurationsdetails abzurufen, ist der folgende Befehl

meteor mongo -U

Dadurch erhalten Sie die Verbindungszeichenfolge


30

Führen Sie vom Terminal aus den folgenden Befehl aus

meteor mongo -U

Daraufhin wird die lokale Host-IP-Adresse und der Port angezeigt, auf dem Ihre Anwendung ausgeführt wird. Führen Sie nun den Robomongo aus und konfigurieren Sie die folgenden zwei Felder so, wie Sie sie durch Ausführen des vorherigen Befehls erhalten haben

Geben Sie hier die Bildbeschreibung ein


Verbunden, kann aber keine Sammlungen sehen. Irgendeine Idee?
Shemeer M Ali

Das gleiche Problem - verbunden, aber keine Sammlungen - haben Sie gelöst?
Adam Moisa

1

Ich verwende ObjCMongoDB , einen C-basierten MongoDB-Treiber. Mit dem neuen Update, anstatt das vorherige 127.0.0.1:3002zu verwenden, um eine Verbindung zu meinem lokalen Host herzustellen, auf dem meteor's mododb ausgeführt wird, muss ich jetzt 127.0.0.1:3001/den Sammlungsnamen verwenden, der noch vorhanden ist meteor.collection. Die wichtige Änderung ist der Port von :3002nach :3001/. Denken /Sie daran , es ist wichtig für die Verbindung.


1

Dies hat bei mir funktioniert. Bevor Sie eine Verbindung herstellen, stellen Sie sicher, dass der Meteor läuft. Ich benutze Robomongo, um eine Verbindung herzustellen. Erstellen Sie eine neue Verbindung und fügen Sie die Adresse hinzu als: localhost; Port als: 3001


1

Verwenden Sie SSH-Tunneling mit dem folgenden Befehl:

ssh -L 3001:localhost:3001 user-name@host

Es leitet Verbindungen von Ihrem lokalen Port 3001 an localhost: 3001 auf Ihrem Server weiter. Jetzt können wir uns einfach mit unserer Datenbank verbinden.

Erstellen Sie eine Robomongo - Verbindung auf dem lokalen Host und schlug - Test (Out von zwei Schecks, kann Authentifizierung fehlschlagen):

Geben Sie hier die Bildbeschreibung ein


0

Ich benutze auch Robomongo und vor dem letzten Update V0.7.1 habe ich Port 3002 verwendet, um eine Verbindung herzustellen, wie @Serkan Durusoy für das neueste Update vorschlägt, das für 3001 Port funktioniert


0

@ imal365 Antwort ist perfekt. Nur um meinen Einblick hinzuzufügen:

Ich habe festgestellt, dass die Standard-Meteor Mongo-Portnummer die Portnummer der Anwendung ist, zu der 1 hinzugefügt wurde (ab Version 0.7.1.1). In meinem Fall habe ich Meteor im Hafen 1337mit dem Befehl ausgeführt meteor --port 1337und mein Meteor Mongo-Hafen war 1338.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.