MongoDB 2.6 startet nicht unter Ubuntu 15.04


51

Ich habe MongoDB 2.6 unter Ubuntu 15.04 installiert:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Es endete ohne Probleme. Als ich jedoch versuchte, es zu starten, bekam ich den folgenden Fehler:

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Wie kann ich das beheben?

Antworten:


65

Ich habe es aus dem Debian Wheeze-Repository installiert und es funktioniert einwandfrei.

Stellen Sie zunächst sicher, dass Sie das mongodb-org-Paket und alle seine Abhängigkeiten entfernen:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

Entfernen Sie die alte mongodb.list, die Sie erstellt haben:

sudo rm /etc/apt/sources.list.d/mongodb.list

Verwenden Sie stattdessen das Debian-Repository:

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Aktualisieren und erneut installieren:

sudo apt-get update
sudo apt-get install -y mongodb-org

Danach können Sie den Server erfolgreich starten:

sudo service mongod start

oder

systemctl start mongod

(wie von Ernie Hershey als Antwort auf Roman Gaufmans Kommentar hier klargestellt: https://jira.mongodb.org/browse/SERVER-17742 )


1
Ich habe das versucht und wurde nicht gefunden, als ich versuchte, Mongod zu starten
Moshe Revah,

2
Sind Sie sicher, dass Sie die Abhängigkeiten automatisch entfernt haben? Das habe ich auch verstanden, aber dann wurde mir klar, dass ich nicht alle Mongodb-bezogenen Pakete entfernt hatte. Nachdem alle entfernt und aus dem Wheezy-Repository installiert wurden, funktioniert es mit systemd einwandfrei.
Dielson Sales

1
hat mir viel Kopfschmerzen
erspart

1
Danke. Purge gefolgt von Autoremove (fast vergessen) hat den Trick gemacht.
Nenad Vukicevic

In meinem Fall am 14.04., Aber wahrscheinlich am 15.04. /var/log/syslog, /etc/init/mongodb.confKann es auch hilfreich sein , den fehlgeschlagenen Versuch zu überprüfen und dann zu bearbeiten , wenn Sie ein nicht standardmäßiges Datenverzeichnis, Protokollverzeichnis oder eine Benutzerinstanz verwenden.
Essen bei Joes

25

Das MongoDB-Team sagt, dass es Ubuntu 15.04 nicht unterstützt und plant, stattdessen 16.04 zu unterstützen (siehe https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15.04 erweitert das Standard-Init-System von Upstart auf systemd. Ich hatte keinen Erfolg, MongoDB 3.0 mit systemd zu starten.

Sie können zu Upstart zurückkehren, indem Sie Folgendes installieren upstart-sysv:

sudo apt-get install upstart-sysv

Starten Sie dann neu und MongoDB sollte gestartet sein.

Ich hoffe, eine einfache Möglichkeit zu finden, MongoDB unter Ubuntu 15.04 auszuführen, ohne die Zeit zurückzuschalten.


2
Dies ist der beste Weg, um dieses Problem zu lösen. Wenn jemand andere Wege kennt, teile dies bitte hier mit.
Fernando Kosh

In meinem Fall stürzt die Installation von upstart-sysv und der Neustart nur ab.
Didac Montero

@DidacMontero Weitere Optionen finden Sie unter wiki.ubuntu.com/SystemdForUpstartUsers
Moshe Revah

Funktioniert bei mir unter Ubuntu 15.04, danke für die Umgehung!
Lil 'Bits

Das hat bei mir perfekt funktioniert.
Slimflem

4

Sie installieren von den Paketen, die direkt von mongodb.org veröffentlicht wurden. Sie sollten von den Paketen installieren, die im Ubuntu-Respository enthalten sind. Die Debian / Ubuntu-Pakete wurden mit systemd-Serviceeinheiten gepatcht, um die Lücke zu füllen, die mongodb.org hinterlassen hat.

(Es gibt keinen Mangel an mongodb.serviceUnit-Dateien im WWW. Es ist auch nicht schwer, eine zu schreiben. Ich habe.)

Im Einzelnen: Eine solche Service-Unit finden Sie im Paket mongodb-server Version 2.6 für Ubuntu Version 15 . Also einfach das Paket installieren.

(Beachten Sie, dass die von Debian / Ubuntu gelieferten Service-Units nicht die von Mongo empfohlenen Richtlinien für System- und Service-Units anwenden .)

Weitere Lektüre


Dieser Ansatz löst jedoch nicht das Problem für diejenigen, die MongoDB> = 3.0
Dielson Sales

Ja tut es. Sie haben weder den zweiten Absatz noch die weitere Lektüre gelesen.
JdeBP

4

Ich habe ein Systemd-Skript erstellt, das für Ubuntu 15.04+ und Mongo 3.0+ zu funktionieren scheint:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

Stellen Sie sicher, dass Sie Ihr Datenverzeichnis in festlegen /etc/mongod.conf


1
Dies ist die beste Lösung.
J. Bruni

Link funktioniert nicht mehr
Hotbelgo

Der Link wurde repariert.
Benileo

Auf jeden Fall sollte es als die beste Lösung markiert werden.
Wédney Yuri

1

Ist das nicht die beste Antwort? Aus einer doppelten Frage: https://askubuntu.com/a/694226/255468 von @sclausen


Es ist nur das Fehlen einer Servicedatei für systemd. Sie müssen nicht wie bei Kartik zum Neustart zurückkehren oder ein anderes Repository als das unter https://docs.mongodb.org/manual/installation/ beschriebene verwenden .

Erstellen Sie eine Datei /lib/systemd/system/mongodb.service mit folgendem Inhalt:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target


1

benutze "mongodb" anstelle von "mongod"

dh

sudo service mongodb start

sudo service mongodb stop

0

Viele dieser Antworten beziehen sich auf Mongo 3.0, während die Frage speziell zu 2.6 gestellt wurde.

Ich hatte Erfolg bei der Installation von 2.6 mit dem Debian-Repository von 10gen. Dies scheint perfekt mit Ubuntu 15.04 zu funktionieren.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

Quelle: Wie installiere ich MongoDB 2.6 auf Ubuntu 14.10, 14.04 und 12.04 LTS?


0

Während die Frage für Version 2.6 ist. Ich habe Unit mongod.service failed to loadin meinem Ubuntu 15.04 für Version 3.0.6 genau den gleichen Fehler erhalten. Letztendlich gelöst mit dem gleichen Wheezy-Repository, das oben von Dielson Sales erwähnt wurde.

Nach der Installation (gemäß den Anweisungen von @Dielson Sales) trat der oben genannte Fehler auf. Hier ist, wie ich es endlich gelöst habe.

A) Ändern Sie die Standarddatenspeicherdateien von MongoDB von / var / lib / mongodb in / data / db

  • Erstellen Sie zuerst das neue Verzeichnis / data / db sudo mkdir -p /data/db

  • Öffnen Sie die Datei mongod.conf sudo gedit /etc/mongod.confund ändern Sie die Zeile "dbpath" wie folgt

  • Ersetzen Sie dbpath = / var / lib / mongodb TO dbpath = / data / db und speichern Sie die Datei.

  • Löschen Sie dann das alte Standardverzeichnis / var / lib / mongodb

  • Jetzt müssen wir alle Verzeichnisse / Dateien erstellen, die mongod user gehören

B) Also lauf sudo chown -R mongodb:mongodb /data/db

Und jetzt kann ich endlich mit Mongo anfangen sudo service mongod start

Und chcek, mit dem der Dienst ausgeführt wird sudo systemctl status mongod - Es sollte eine Meldung ähnlich der folgenden anzeigen

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

Habe meine Schritte in meinem Blogbeitrag detailliert beschrieben


0

Laden Sie zuerst mongodb herunter:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

Auszug herunterladen:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

Führen Sie den Mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) mit dem Attribut -dbpath aus:

sudo ./mongod --dbpath /path/of/the/directory

Es kann ein leeres Verzeichnis Ihrer Wahl sein

und schließlich mongo ausführen (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

arbeitete an meinem Ubuntu 15 :)

Entschuldigung für mein schlechtes Englisch, ich lebe in Brasilien


0

Nach stundenlanger Suche bestand die Lösung darin, mein Ubuntu mit dem folgenden Befehl von 15.04 auf 16.04 zu aktualisieren:

Schritt 1

sudo do-release-upgrade -d 

Es wird ein paar Minuten dauern, also keine Panik, dann musst du mongodb entfernen:

Schritt 2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

Und jetzt installiere mongodb aber benutze diese Quelle:

echo 'deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Schritt 3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
echo ‘deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main’ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org
sudo service mongod status

Und das ist es.

Hinweis: Wenn Sie eine Fehlermeldung wie "E" erhalten, geben Sie "deb" in die erste Zeile ein. . . in der Datei mongodb-org-3.0.list

Alles, was Sie tun müssen, ist, mit gedit in diese Datei zu gelangen und das 'am Anfang und am Ende des Satzes zu löschen.


Dieser Teil "Die Lösung war, mein Ubuntu von 15.04 auf 16.04 zu aktualisieren ..." ist im Moment nicht sinnvoll, da 16.04 noch nicht veröffentlicht ist.
Clearkimura

1
@clearkimura Ja, das ist es. Nun, in Alpha. Und was auch immer, der zweite tägliche Build von Ubuntu 16.04 ist auf meinem Computer installiert, und ich habe keine Probleme gesehen.
Star OS

0

Ubuntu 15.04+ verwendet systemd anstelle von upstart . Beginnen Sie mit der offiziellen Installationsanleitung von MongoDB . Dann nutzen Sie deren offiziellen mongod.service:

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

Downloaden, patchen, installieren Sie den Service und richten Sie die dir + -Berechtigungen ein

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

Dienst starten

$ sudo systemctl start mongod

Überprüfen Sie den Servicestatus

$ sudo systemctl status mongod

0

Sie haben einen Tippfehler in Ihrem Befehl gemacht.

Versuchen Sie stattdessen Folgendes: sudo service mongodb start

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.