web-dev-qa-db-de.com

So stellen Sie eine Verbindung zur MongoDB EC2-Instanz her

wir haben eine EC2 MongoDB 2.4-Instanz von Amazon MarketPlace.

mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com

ich erhalte folgende Fehlermeldung 

Error: couldn't connect to server xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 at src/mongo/Shell/mongo.js:147
exception: connect failed
  • ich kann eine Verbindung zur Remote-Instanz mit ssh herstellen, damit sie erreichbar ist.
  • der Port ist der Standardport 27017.
  • mongod läuft und arbeitet an der Remote-Instanz.

irgendwelche Vorschläge, wie man das beheben kann?

15
user2708100

Wie frisky gesagt wurde, müssen Sie den Port 27017 an der EC2 Security Group Console öffnen. (Weitere Informationen dazu finden Sie unter: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html

Sie müssen aber auch die Variable bind_ip in der Datei /etc/mongodb.conf ändern. Sie müssen die Zeile kommentieren oder die IP zuweisen, mit der die DB mit ihr verbunden werden kann. 

21
Jundiaius

Da mongod auf der Remote-Instanz ausgeführt wird und arbeitet, können Sie über Ihren MongoDB-Inhalt zugreifen 

mongo xx-xx-xx-xx-xx.compute-1.amazonaws.com oder mongo machine_elastic_IP

Zuvor müssen Sie den eingehenden Port für diese Maschine öffnen. Der Standardport 27017 ist für die externe Welt geschlossen.

Weitere Informationen finden Sie unter: http://docs.aws.Amazon.com/gettingstarted/latest/wah/getting-started-security-group.html

7
deepakmodak

Amazon hat eine Mongo-Sicherheitsgruppe ohne 27017 geöffnet.

5
user2708100

Versuchen Sie, über den Browser auf xx-xx-xx-xx-xx.compute-1.amazonaws.com:27017 zuzugreifen. Wenn dies funktioniert, führen Sie ssh in die Instanz aus. 

  • Stoppen Sie den Mongodb-Server
  • Entfernen Sie die Datei /var/lib/mongodb/mongod.lock

starten Sie den Mongodb-Server erneut und prüfen Sie, ob die Eingabe von mongo in eine Mongo-Shell eingeht oder einen Fehler anzeigt. 

Wenn der Fehler vorhanden ist, beenden Sie die Instanz und ss erneut, um nach $mongo zu suchen, wenn eine Mongo-Shell geöffnet wird. Versuchen Sie nach diesen Änderungen einen Neustart, wenn der Fehler nach den oben genannten Änderungen noch besteht.

Das einzige Problem ist hier, bevor Sie von einer Anwendung aus darauf zugreifen. Mongodb sollte im Terminal unabhängig arbeiten.

1
Bijendra

EC2 steuert den Zugriff über die Sicherheitsgruppe. Stellen Sie daher sicher, dass das Kontrollkästchen für den Zugriff auf den Mongo-Datenbankhost in security group zum Zugriff auf dieses Kontrollkästchen berechtigt ist und port für dieselbe Sicherheitsgruppe aktiviert ist.

Ein anderes Problem kann iptables sein. Markieren Sie Sudo service iptables status in der Mongodb-Box und sehen Sie, welche Regeln dort gelten.

Stellen Sie sicher, dass Sie die entsprechenden Ports gemäß der security-Anforderung der Box aktivieren.

0
Confused

Die folgenden zwei Schritte haben die Remote-Verbindung für mich aktiviert:

    1. Öffnen des eingehenden Formulars für meine VPC an Port 27017 VPC -> Sicherheit -> Sicherheitsgruppen -> Wählen Sie die Roule TCP Ihrer Instanz -> klicken Sie auf "Regeln bearbeiten" -> fügen Sie eine Regel mit Typ hinzu: "Benutzerdefiniert TCP Regel ", Protokoll: TCP, Portbereich: 27017, Quelle: Benutzerdefiniert 0.0.0.0/0 -> speichern
    1. SSH in Ihre Instanz -> Sudo vi /etc/mongod.conf -> set bindIp: 0.0.0.0 -> save -> Sudo-Dienst-Mongod-Neustart

Danach können Sie sich mit mongo --Host YOUR_INSTANCE_IP in Ihre entfernte Mongo-Instanz einwählen

0
Stas Ezersky