Tutorial

So installieren Sie MongoDB aus den Standard-APT-Repositorys unter Ubuntu 20.04

MongoDBUbuntuNoSQLDatabasesUbuntu 20.04

Einführung

MongoDB ist eine kostenlose und Open-Source-NoSQL-Dokumentendatenbank, die häufig in modernen Webanwendungen verwendet wird.

In diesem Tutorial installieren Sie MongoDB, verwalten den Dienst und aktivieren optional den Fernzugriff.

Hinweis: Zum jetzigen Zeitpunkt wird in diesem Tutorial die Version 3.6 von MongoDB installiert. Dies ist die Version, die in den Standard-Ubuntu-Repositorys verfügbar ist. Wir empfehlen jedoch generell, stattdessen die neueste Version von MongoDB zu installieren - Version 4.4 zum jetzigen Zeitpunkt. Wenn Sie die neueste Version von MongoDB installieren möchten, empfehlen wir Ihnen, diese Anleitung zur Installation von MongoDB unter Ubuntu 20.04 aus dem Quellcode zu befolgen.

Voraussetzungen

Um dieser Anleitung zu folgen, benötigen Sie:

  • Ein Ubuntu 20.04-Server, der gemäß des Leitfadens zur Ersteinrichtung des Servers für Ubuntu 20.04 eingerichtet wurde, einschließlich eines non-root users, der über sudo-Berechtigungen verfügt, und einer mit UFW konfigurierten Firewall.

Schritt 1 — Installieren von MongoDB

Zu den offiziellen Paket-Repositorys von Ubuntu gehört MongoDB, was bedeutet, dass wir die erforderlichen Pakete mit apt installieren können. Wie in der Einführung erwähnt, ist die aus den Standard-Repositorys verfügbare Version nicht die neueste. Befolgen Sie stattdessen dieses Tutorial, um die neueste Version von Mongo zu installieren.

Aktualisieren Sie zunächst die Paketliste, um die neueste Version der Repository-Listen zu erhalten:

  • sudo apt update

Installieren Sie nun die MongoDB selbst:

  • sudo apt install mongodb

Dieser Befehl fordert Sie auf, zu bestätigen, dass Sie das Paket mongodb und seine Abhängigkeiten installieren möchten. Drücken Sie dazu Y und dann ENTER.

Der Datenbankserver wird nach der Installation automatisch gestartet.

Überprüfen wir als Nächstes, ob der Server ausgeführt wird und korrekt funktioniert.

Schritt 2 — Überprüfen des Dienstes und der Datenbank

Der Installationsprozess hat MongoDB automatisch gestartet. Überprüfen Sie jedoch, ob der Dienst gestartet wurde und die Datenbank funktioniert.

Überprüfen Sie als erstes den Status des Dienstes:

  • sudo systemctl status mongodb

Sie sehen diese Ausgabe:

Output
● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Laut dieser Ausgabe wird der MongoDB-Server ausgeführt.

Wir können dies weiter überprüfen, indem wir tatsächlich eine Verbindung zum Datenbankserver herstellen und den folgenden Diagnosebefehl ausführen. Dadurch werden die aktuelle Datenbankversion, die Serveradresse und der Port sowie die Ausgabe des Statusbefehls ausgegeben:

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Output
MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Ein Wert von 1 für das ok-Feld in der Antwort gibt an, dass der Server ordnungsgemäß funktioniert:

Als Nächstes werden wir uns ansehen, wie Sie die Serverinstanz verwalten.

Schritt 3 — Verwalten des MongoDB-Dienstes

Der in Schritt 1 beschriebene Installationsprozess konfiguriert MongoDB als systemd-Dienst. Dies bedeutet, dass Sie ihn zusammen mit allen anderen Systemdiensten in Ubuntu mit Standard-systemctl-Befehlen verwalten können.

Um den Status des Dienstes zu überprüfen, geben Sie Folgendes ein:

  • sudo systemctl status mongodb

Sie können den Server jederzeit stoppen, indem Sie Folgendes eingeben:

  • sudo systemctl stop mongodb

Um den Server zu starten, wenn er angehalten wurde, geben Sie Folgendes ein:

  • sudo systemctl start mongodb

Sie können den Server auch mit dem folgenden Befehl neu starten:

  • sudo systemctl restart mongodb

Standardmäßig ist MongoDB so konfiguriert, dass es automatisch mit dem Server gestartet wird. Falls Sie den automatischen Start deaktivieren möchten, geben Sie Folgendes ein:

  • sudo systemctl disable mongodb

Sie können den automatischen Start jederzeit mit dem folgenden Befehl wieder aktivieren:

  • sudo systemctl enable mongodb

Als nächstes passen wir die Firewall-Einstellungen für unsere MongoDB-Installation an.

Schritt 4 — Anpassen der Firewall (optional)

Angenommen, Sie haben die Anweisungen zum ersten Server-Setup-Tutorial befolgt, um die Firewall auf Ihrem Server zu aktivieren, ist der Zugriff auf den MongoDB-Server über das Internet nicht möglich.

Wenn Sie MongoDB nur lokal mit Anwendungen verwenden möchten, die auf dem gleichen Server ausgeführt werden, ist dies die empfohlene und sichere Einstellung. Wenn Sie jedoch über das Internet eine Verbindung mit Ihrem MongoDB-Server herstellen möchten, müssen Sie die eingehenden Verbindungen durch Hinzufügen einer UFW-Regel zulassen.

Um von überall aus auf MongoDB über den Standardport 27017 zuzugreifen, können Sie sudo ufw allow 27017 ausführen. Wenn Sie jedoch bei einer Standardinstallation den Internetzugang zum MongoDB-Server aktivieren, kann jeder uneingeschränkt auf den Datenbankserver und seine Daten zugreifen.

In den meisten Fällen sollte nur von bestimmten vertrauenswürdigen Orten auf MongoDB zugegriffen werden, wie z. B. von einem anderen Server, der eine Anwendung hostet. Um nur einem anderen vertrauenswürdigen Server den Zugriff auf den Standardport von MongoDB zu ermöglichen, können Sie die IP-Adresse des Remote-Servers im Befehl ufw angeben. Auf diese Weise darf nur dieser Computer explizit eine Verbindung herstellen:

  • sudo ufw allow from trusted_server_ip/32 to any port 27017

Sie können die Änderung der Firewall-Einstellungen mit ufw überprüfen:

  • sudo ufw status

Sie sollten in der Ausgabe den Datenverkehr zu Port 27017 erlauben. Beachten Sie, dass, wenn Sie beschlossen haben, nur eine bestimmte IP-Adresse für die Verbindung zum MongoDB-Server zuzulassen, die IP-Adresse des zulässigen Speicherorts anstelle von Anywhere in der Ausgabe dieses Befehls aufgeführt wird:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

Weitere erweiterte Firewall-Einstellungen zum Einschränken des Zugriffs auf Dienste finden Sie in UFW-Grundlagen: gebräuchliche Firewall-Regeln und -Befehle.

Obwohl der Port geöffnet ist, überwacht MongoDB immer noch nur die lokale Adresse 127.0.0.1. Fügen Sie der Datei mongodb.conf die öffentlich routbare IP-Adresse Ihres Servers hinzu, um Remoteverbindungen zuzulassen.

Öffnen Sie die MongoDB-Konfigurationsdatei in Ihrem bevorzugten Editor. Dieser Beispielbefehl verwendet nano:

  • sudo nano /etc/mongodb.conf

Fügen Sie die IP-Adresse Ihres MongoDB-Servers zum bindIP-Wert hinzu. Stellen Sie sicher, dass Sie ein Komma zwischen der vorhandenen IP-Adresse und der hinzugefügten Adresse einrichten:

/etc/mongodb.conf
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Speichern Sie die Datei und beenden Sie den Editor. Wenn Sie nano zum Bearbeiten der Datei verwendet haben, drücken Sie dazu STRG + X, Y und dann ENTER.

Starten Sie dann den MongoDB-Dienst neu:

  • sudo systemctl restart mongodb

MongoDB wartet jetzt auf Remoteverbindungen, aber jeder kann darauf zugreifen. Befolgen Sie die Anweisungen zum Sichern von MongoDB unter Ubuntu 20.04, um einen Administrator hinzuzufügen und die Dinge weiter zu sperren.

Zusammenfassung

Weitere Anleitungen zum Konfigurieren und Verwenden von MongoDB finden Sie in diesen Community-Artikeln von DigitalOcean. Die offizielle MongoDB-Dokumentation ist auch eine großartige Ressource für die Möglichkeiten, die MongoDB bietet.

Creative Commons License