Es ist ein bisschen wie ein Hack, aber ja, das kann man machen. Es ist ein undokumentierter Schritt erforderlich, um den Dienst tatsächlich zu starten, und (seltsamerweise) müssen Sie das Ubuntu- mongodb
Paket zuerst installieren und dann entfernen, damit Sie einen verwendbaren Dienst haben, es sei denn, Sie möchten die Konvertierung von Upstart-Jobs manuell durchführen . Eine direkte Installation der MongoDB-Pakete bietet Ihnen keinen funktionierenden Service für einen neuen 16.04.
Update - Juli 2016: Der offizielle Fix für dieses Problem (Hinzufügen von Unterstützung für 16.04 zu den Paketen) wurde im 3.3 -Entwicklungszweig als Teil von SERVER-23043 abgeschlossen - und als Backport in der 3.2-Serie als Teil von 3.2 veröffentlicht. 7 . Wenn Sie 3.2.7+ verwenden, müssen Sie dies nicht tun, und die offizielle Installation des MongoDB-Pakets sollte einfach funktionieren.
Befolgen Sie in jedem Fall nach dem Hinzufügen / Entfernen die üblichen Anweisungen für 14.04, die hier zusammengefasst sind:
# install the Ubuntu package (to get the service set up correctly)
sudo apt-get install mongodb
# Now remove it and continue with the MongoDB instructions
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the MongoDB package
sudo apt-get install -y mongodb-org
Die Installation ist erfolgreich, und dank des Ubuntu-Pakets verfügen wir über alle für einen Dienst erforderlichen Komponenten. Der Versuch, den Dienst zu starten, schlägt jedoch zunächst fehl:
$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.
Dies zu beheben ist nicht allzu schwer:
$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.
Jetzt können wir den Dienst aktivieren / starten, seinen Status abrufen usw.
$ sudo service mongodb enable
$ sudo service mongodb start
$ sudo service mongodb status
● mongodb.service - LSB: An object/document-oriented database
Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled)
Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS)
Main PID: 1593 (code=exited, status=0/SUCCESS)
Tasks: 13 (limit: 512)
Memory: 51.9M
CPU: 100ms
CGroup: /system.slice/mongodb.service
└─2861 /usr/bin/mongod --config /etc/mongodb.conf
Erfolg - und wir erhalten einen schönen Zeiger auf die aktive Konfigurationsdatei (die im alten key=value
Format vorliegt, siehe hier für Beispiele im neueren empfohlenen YAML-Format).
Hinweis: Es gibt tatsächlich zwei Konfigurationsdateien /etc/mongod.conf
und /etc/mongodb.conf
dank geringfügiger Unterschiede zwischen den beiden von uns installierten Paketen. Der jetzt aktive Dienst verweist standardmäßig auf das alte Format. /etc/mongodb.conf
Sie können wechseln, indem Sie das auf verschieben / kopieren mongod.conf
, mongodb.conf
wenn Sie dies wünschen, oder die Datei einfach direkt bearbeiten.
Stellen Sie nach dem Start zum Testen eine Verbindung zur Datenbank mit der mongo
Shell her:
$ mongo
MongoDB shell version: 3.2.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
Wenn Sie die THP-Warnungen entfernen möchten, lesen Sie diese Antwort .