it-swarm.com.de

Verbindung zu MongoDB verweigert errno 111

Ich habe einen Linode-Server mit Ubuntu 12.04 LTS und einer MongoDB-Instanz (der Dienst wird ausgeführt und kann lokal eine Verbindung herstellen), zu dem ich keine Verbindung von einer externen Quelle herstellen kann.

Ich habe diese beiden Regeln zu meinen IP-Tabellen hinzugefügt, wobei <IP-Adresse> der Server ist, mit dem ich eine Verbindung herstellen möchte (siehe MongoDB-Referenz ):

iptables -A INPUT -s < ip-address > -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -d < ip-address > -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

Und ich sehe die Regel in meiner IP-Tabelle, die Verbindungen auf 27017 zu und von <IP-Adresse> zulässt, aber wenn ich versuche, mit einem Befehl wie dem folgenden eine Verbindung von <IP-Adresse> zu meiner Mongo-Datenbank herzustellen:

mongo databasedomain/databasename -u username -p password

Ich erhalte diesen Fehler:

2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused 2014-07-22T23:54:03.094+0000 Error: couldn't connect to server < ip address >:27017 (databaseserverip), connection attempt failed at src/mongo/Shell/mongo.js:148 exception: connect failed

Jede Hilfe ist sehr geschätzt !!!! Vielen Dank!!!

68
dbcooper

Danke für die Hilfe an alle!

Es stellte sich heraus, dass es ein iptable Konflikt war. Zwei Regeln, die den offenen Port auflisten (was zu einem geschlossenen Port führte).

Allerdings waren einer der Kommentare von aka und ein anderer von manu2013 Probleme, auf die ich ohne den Konflikt gestoßen wäre.

Damit! Denken Sie immer daran, das /etc/mongod.conf file und setze dein bind_ip = 0.0.0.0, um externe Verbindungen herzustellen.

Stellen Sie außerdem sicher, dass Ihre Iptable keine widersprüchlichen Regeln für den von mongo gewünschten Port enthält (siehe Link auf der Website von mongodb , um Ihre Iptables ordnungsgemäß einzurichten).

111
dbcooper

Versuche Folgendes:

Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
42
manu2013

Diese Befehle haben das Problem für mich behoben.

Sudo rm /var/lib/mongodb/mongod.lock
Sudo mongod --repair
Sudo service mongod start
Sudo service mongod status

Wenn Sie sich hinter einem Proxy befinden, verwenden Sie: -
export http_proxy = "http: // benutzername: [email protected]: port /"
export https_proxy = "http: // benutzername: [email protected]: port /"

Referenz: https://stackoverflow.com/a/24410282/4359237

40
sk1pro99

Für Ubuntu Server 15.04 und 16.04 müssen Sie nur diesen Befehl ausführen

Sudo apt-get install --reinstall mongodb
16
techfano

Ich hatte kein /data/db Verzeichnis. Ich erstellte eine und gab ein chmod 777 Erlaubnis und es hat bei mir funktioniert

Eine andere Möglichkeit besteht darin, Ihre Datenbank einfach so zu reparieren (Hinweis: db0-Verzeichnis sollte zuerst erstellt werden):

mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0

Dies ist auch in Produktionsumgebungen eine akzeptable Option ...

3
Ostati

Ich hatte auch das gleiche Problem. Erstellen Sie ein Verzeichnis in dbpath. In meinem Fall gab es kein Verzeichnis in/data/db. Also habe ich eines erstellt.

2
Susampath

In meinem Fall war die Vorgängerversion 3.2. Ich habe ein Upgrade auf 3.6 durchgeführt, aber die Datendateien waren nicht mit der neuen Version kompatibel. Deshalb habe ich alle Datendateien entfernt, da sie für mich und seine Werke nicht verwendbar waren.

Sie können Protokolle mit /var/log/mongodb Überprüfen.

1
Kamal Kumar

Ich folge den Anweisungen in diesem Tutorial für die Installation

Wie installiere ich MongoDB auf Ubuntu 16.04

Ich hatte den gleichen Fehler. Schließlich fand ich heraus, dass ich die Portnummer einstellen musste

Die Standardportnummer für den Mongo-Befehl lautet 27017

Die Standardportnummer in mongo.conf ist jedoch 29999

1
freedom