2016-04-08 10 views
1

Ich möchte mongoDB als Dienst ausführen. Die Instanz soll als ein Einzelknoten-Replikat konfiguriert werden, um eine ElasticSearch-Instanz mit einem the connector verbinden zu können.Kann mongoDB nicht als Dienst starten

So dehnte ich die mongod.conf:

... 
replication: 
    replSetName: "singleNodeRepl" 
... 

ich verschiedene Arten versucht nun die mongod zu starten, aber nichts funktioniert.

Wenn ich versuche, den Dienst von $ service mongod start zu starten, wird folgende Fehlermeldung ausgegeben:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.106" (uid=1225 pid=26018 comm="start mongod ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") 

Wenn ich diesen Befehl als sudo ausführen, seine „running“ und folgende (was nicht empfohlene Vorgehensweise, nicht wahr?) Nachricht wird angezeigt:

mongod start/running, process 26034 

Aber Prozess 26034 nicht existiert und ps aux | grep mongo zeigt auch nichts ?!

Nächster Versuch: Führen Sie es als eine normale Anwendung

mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl 

Hier folgende Ausnahme angezeigt:

2016-04-08T14:31:35.192+0200 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 
2016-04-08T14:31:35.192+0200 I CONTROL [initandlisten] dbexit: rc: 100 

Alles ist in Ordnung, wenn ich ~$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl laufen, aber das ist nicht mein Ziel: Es ist nicht läuft als ein Dienst und seine Ausführung als root.

Das Mongod-Logfile bleibt oft unberührt. Aber die letzten Zeilen sind neugierig:

2016-04-08T14:24:56.242+0200 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted 
2016-04-08T14:24:56.242+0200 I -  [initandlisten] Fatal Assertion 28578 
2016-04-08T14:24:56.242+0200 I -  [initandlisten] 
***aborting after fassert() failure 

A mongodb-27017.sock existiert, aber das Löschen (was überall vorgeschlagen) half nicht.

Basierend auf den oben genannten Fehler tried serveral solutions, aber nichts hilft.

Ich denke, es ist ein sehr einfacher Fehler ... aber welcher?

[edit:] Ich entdeckte, dass ich vielleicht den Config-Speicherort hätte angeben sollen. So ist der (Arbeits aber schlecht) Befehl wie folgt aussieht:

$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl --config /etc/mongod.conf 

Die folgenden Fehler bringt:

warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default 

Das ist eine alte Sache, die die Lösung für this problem war und plötzlich nicht mehr funktioniert !?

+0

In den Protokollen ist mir aufgefallen, dass eine Sperrdatei nicht erstellt oder geöffnet werden konnte. Könnte es ein Benutzerberechtigungsproblem sein? Was sind die Berechtigungen für das ''/var/lib/mongodb/''? –

+0

'rwxr-xr-x 4 mongodb mongodb 4096 Apr 8 14:31 mongodb' – MUmla

+0

Haben Sie versucht, die .sock- und .lock-Datei zu löschen? –

Antwort

0

Ich hatte Probleme zu stoppen und starten Mongod als Service. Es stellte sich heraus, dass es ein Problem mit dem Upsart-Skript gab. Ich fand diese discussion, die es zu beheben schien.

Die vorgeschlagene Lösung war ziemlich viel: (Kopie Einfügen jetzt) ​​

vim /etc/init.d/mongod

sucht stop() Funktion (und start() Funktion für eine gute Maßnahme) und entfernen Sie Anführungszeichen um $ PIDFILE in der folgenden Linie.

killproc -p $PIDFILE -d 300 /usr/bin/mongod

+0

interessant. mongod fehlt in /etc/init.d/ auf meiner Maschine ?! Aber ich habe alles, was hier erwähnt wird (https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu) während der Installation gemacht ?! Natürlich! Es hat etwas mit dem Wechsel von init.d zu SysV auf ubuntu zu tun! Untersuchung im Prozess ... – MUmla

+0

Konnte dieses Problem hier sein: http://stackoverflow.com/questions/10733201/mongodb-is-not-starting-in-ubuntu – MUmla

+0

Das wäre seltsam, wenn Sie den ubuntu Anweisungen folgten und didn Erhalte keine Mongod-Datei. Vielleicht erstellen Sie einen wie vorgeschlagen. –

0

tun:

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

Lassen Sie mich wissen, ob das funktioniert nicht!

+0

Ich tat dies bereits in ähnlicher Weise wie in der Frage erwähnt. Wenn ich dies (mit korrekten DBpath), bekomme ich diesen Fehler: 'Ausnahme in initAndListen: 98 Erstellen/Öffnen von Sperrdatei nicht möglich: /var/lib/mongodb/mongod.lock errno: 13 Berechtigung verweigert Ist eine Mongod-Instanz läuft schon ?, terminiert' Aber der mongod.lock existiert nicht mehr (mehr). Verrückt. – MUmla