2016-05-25 13 views
2

Ich habe eine MongoDB-Instanz auf einer AWS EC2 Ubuntu-Instanz erstellt.Verbindung zu MongoDB-Instanz auf AWS EC2-Instanz nicht möglich

MongoDB läuft und wenn ich ssh in die Maschine und führen Sie die MongoDB mongod Konsole, ich bin in der Lage, Datenbanken zu erstellen, so bin ich zuversichtlich, dass es erfolgreich ausgeführt wird.

Ich kann jedoch von meinem lokalen Computer in einem Browser nicht auf die Datenbank zugreifen.

Ich habe die bindIp in /etc/mongod.conf-0.0.0.0 geändert, und ich habe Port 27017 geöffnet von sudo ufw allow 27017 Ausführung aber mein Browser mal noch versucht zu verbinden.

Wenn ich versuche, die Instanz mongod --config /etc/mongod.conf zu konfigurieren, erhalte ich die Fehlermeldung:

CONTROL [main] Failed global initialization: FileNotOpen: Failed to open "/var/log/mongodb/mongod.log" 

Diese Datei existiert! Der relevante Teil der Konfigurationsdatei sieht wie folgt aus:

systemLog: 
    destination: file 
    logAppend: true 
    path: /var/log/mongodb/mongod.log 

ich gelesen habe, dass Sie die REST-Schnittstelle zu ermöglichen, haben durch --rest Angabe, aber ich weiß nicht, wie dies zu tun, da ich den Datenbank-Dienst bin ab mit dem Befehl sudo service mongod start.

Meine Einstellungen AWS Sicherheit sieht wie folgt aus:

enter image description here

Was bin ich?

Antwort

1

Sie haben nicht angegeben, welche MongoDB-Version Sie verwenden, aber da Sie die YAML-Konfiguration anzeigen, gehe ich davon aus, dass es 2.6 oder höher ist.

Sie können die REST-Schnittstelle über mongodb.conf mit den folgenden (pro https://docs.mongodb.com/v3.0/reference/configuration-options/) aktivieren:

net: 
    http: 
     enabled: true 
     RESTInterfaceEnabled: true 

zum MongoDB docs Nach der REST-Schnittstelle (die in 3.2 veraltet) lauscht auf Port 28017 (1000 + der Mongod-Port), so dass Sie die Firewall für diesen Port öffnen müssen.

Außerdem empfehle ich dringend, keine DB-Ports zur Welt (0.0.0.0) zu öffnen. Suchen Sie die IP Ihres Laptops (oder wahrscheinlich die IP Ihres Routers, wie von Ihrem ISP zugewiesen) und fügen Sie diese stattdessen hinzu.

Ihr Browser kann wahrscheinlich keine Verbindung herstellen (Sie haben den genauen Fehler nicht angegeben), da mongodb weder HTTP noch ein anderes Browserprotokoll verwendet und Ihr Browser nicht weiß, wie er damit umgehen soll. Sie werden nicht in der Lage sein, viel mit Ihrem Browser zu tun, auch wenn die REST-Schnittstelle trotzdem aktiviert ist. Versuchen Sie, die mongo-Shell (stellen Sie sicher, dass Sie die gleiche Version wie mongodb auf Ihrem Server bekommen) auf Ihrem Laptop und sehen, ob Sie mit Port 27017 damit verbinden können.

+0

Danke dafür, ich werde versuchen. Es war mir bewusst, dass nur die Admin-Konsole auf 28017 veraltet war und nicht die REST-Schnittstelle auf 27017. Ist das ein Missverständnis? – serlingpa

+0

Hmm. Beim Versuch, eine Datenbank auf http // xx.xx.xx.xx anzuzeigen: 27107/Datenbankname erhalte ich die Meldung "Es sieht so aus, als ob Sie versuchen, über den nativen Treiberport auf MongoDB über HTTP zuzugreifen." Ist es nicht mehr möglich, die Datenbank über HTTP abzufragen? Ich benutze die neueste Version von MongoDB (Version 3.2.6 denke ich). – serlingpa

+0

Ich habe keine Installation über 3.0 zu testen, aber die Dokumente scheinen zu implizieren, dass sie HTTP ablehnen. Funktioniert 28017? –

Verwandte Themen