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.
Um dieser Anleitung zu folgen, benötigen Sie:
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.
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 })'
OutputMongoDB 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.
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.
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:
OutputStatus: 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:
...
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!