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!!!
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).
Versuche Folgendes:
Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
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 /"
Für Ubuntu Server 15.04 und 16.04 müssen Sie nur diesen Befehl ausführen
Sudo apt-get install --reinstall mongodb
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 ...
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.
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.
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