So installierst du MongoDB unter Debian 12

MongoDB ist ein quelloffenes, plattformübergreifendes und verteiltes NoSQL-Datenbanksystem (Non-SQL oder Non-Relational). Anstatt Daten wie herkömmliche SQL-Datenbanken in Tabellen zu speichern, verwendet MongoDB flexible Dokumente, um verschiedene Datenformen zu speichern. MongoDB verwendet das binäre JSON-Format, BSON, zum Speichern von Daten.

MongoDB ist eine verteilte NoSQL-Datenbank mit eingebauter Hochverfügbarkeit, automatischer Ausfallsicherung und Datenredundanz sowie horizontaler Skalierung über verteilte Cluster und unterstützt den geografischen Einsatz in mehreren Regionen. MongoDB bietet außerdem eine Abfrage-API, die CRUD-Operationen (Lesen und Schreiben), eine Datenaggregations-Pipeline, Textsuche und Geodatenabfragen unterstützt.

In diesem Lernprogramm erfährst du, wie du MongoDB auf einem Debian 12-Server installierst. Außerdem lernst du, wie du die MongoDB-Authentifizierung aktivierst, den MongoDB-Client „mongosh“ verwendest und grundlegende Abfragen verwendest, um einen neuen Benutzer und eine neue Datenbank in MongoDB anzulegen.

Voraussetzungen

Um mit diesem Lernprogramm zu beginnen, musst du folgende Voraussetzungen erfüllen:

  • Einen Debian 12-Server
  • Einen Nicht-Root-Benutzer mit Administratorrechten

Vorbereiten des Debian-Servers

Bevor du MongoDB auf deinem Debian-Server installierst, empfiehlt es sich, die folgenden Einstellungen vorzunehmen:

  • Deaktiviere transparente riesige Seiten (THP) über das systemd-Skript
  • Erhöhe die Standardlimits für den MongoDB-Benutzer
  • Aktiviere Swapiness und erhöhe den max_mmap-Speicher über die Datei„/etc/sysctl.conf„.

Konfigurieren wir nun den Debian-Server.

Führe zunächst den Befehl„nano“ aus, um eine neue Dienstdatei /etc/systemd/system/disable-thp.service zu erstellen.

sudo nano /etc/systemd/system/disable-thp.service

Füge das folgende Service-Skript ein, um die„transparent_hugepage“ auf„never“ zu setzen.

[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende sie.

Führe nun den folgenden„systemctl„-Befehl aus, um den systemd-Manager neu zu laden. Starte und aktiviere dann den Dienst„disable-thp„. Damit wird die„transparent_hugepage“ bei jedem Systemstart deaktiviert.

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Als Nächstes erstellst du eine neue Datei /etc/security/limits.d/mongodb.conf mit dem Editor„nano„.

sudo nano /etc/security/limits.d/mongodb.conf

Füge die unten stehende Konfiguration ein, um den Prozess und die Datei mit den maximalen Limits für den Benutzer„mongod“ auf„64000“ einzustellen.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Wenn du fertig bist, speichere die Datei und beende sie.

Danach bearbeitest du die Datei„/etc/sysctl.conf“ wie folgt.

sudo nano /etc/sysctl.conf

Füge die unten stehende Konfiguration am Ende der Zeile ein.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

Speichere die Datei und beende sie.

Zum Schluss führst du den Befehl„sysctl“ aus, um die Änderungen in der Datei„/etc/sysctl.conf“ sofort zu übernehmen.

sudo sysctl -p

Setup-System

Installation des MongoDB-Servers unter Debian

Jetzt, wo du deinen Debian-Server konfiguriert hast, können wir mit der Installation von MongoDB beginnen. In diesem Fall installierst du MongoDB 7.0 über das offizielle MongoDB-Repository auf deinem Debian-Server.

Installiere die Pakete„gnupg“ und„curl“ wie folgt auf deinem Debian-System:

sudo apt install gnupg curl

gnupe curl installieren

Füge nun den MongoDB GPG-Schlüssel und das Repository für Debian mit dem folgenden Befehl hinzu. In diesem Fall wirst du ein Repository für MongoDB 7.0 einrichten.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Repo hinzufügen

Als nächstes führst du den Befehl„apt“ aus, um deine Paketliste zu aktualisieren und das Paket „mongodb-org“ zu installieren.

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

In der folgenden Ausgabe kannst du die MongoDB-Installation sehen.

mongodb installieren

Nachdem die Installation abgeschlossen ist, lade den systemd Manager mit dem Befehl „systemctl“ neu.

sudo systemctl daemon-reload

Starte und aktiviere den Dienst „mongod“ und überprüfe dann, ob der Dienst läuft.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Wenn MongoDB läuft, siehst du eine Ausgabe wie die folgende:

mongodb prüfen

Absicherung des MongoDB-Servers mit Authentifizierung

Wenn du MongoDB installiert hast, musst du deine Installation absichern, indem du die MongoDB-Authentifizierung aktivierst. In diesem Abschnitt richtest du die MongoDB-Authentifizierung ein und erstellst einen neuen Administrator-Benutzer für MongoDB. Hier erfährst du, wie du denMongoDB-Client „mongosh“ verwendest und grundlegende MongoDB-Abfragen stellst.

Melde dich mit dem unten stehenden Befehl„mongosh“ am MongoDB-Server an. Für die Standard-MongoDB-Installation gibt es kein Passwort.

mongosh

Führe den Befehl„disableTelemetry()“ aus, um die anonyme Datenerfassung von MongoDB zu deaktivieren.

disableTelemetry()

Telemetrie deaktivieren

Wechsle zur Datenbank„admin“ mit der Abfrage„use„.

use admin

Führe nun die folgende Abfrage aus, um einen neuen Benutzer„myAdmin“ zu erstellen, der als Administrator für deinen MongoDB-Server verwendet wird. Gib dein Passwort ein, wenn du danach gefragt wirst.

db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Gib den Befehl„quit()“ ein, um den MongoDB-Server zu verlassen.

quit()

Benutzer erstellen

Als Nächstes bearbeitest du die Datei„/etc/mongod.conf“ mit dem Editor„nano„.

sudo nano /etc/mongod.conf

Entferne das Kommentarzeichen bei der Option„security“ und füge„authorization: enabled“ hinzu, um die Authentifizierung bei MongoDB zu aktivieren.

security:
  authorization: enabled

Speichere die Datei und beende den Editor.

Führe nun den Befehl„systemctl“ aus, um den MongoDB-Server neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart mongod

MongoDB-Authentifizierung testen

Jetzt hast du einen Admin-Benutzer angelegt und die Authentifizierung auf deinem MongoDB-Server aktiviert. Überprüfe nun deine Konfiguration, indem du dich mit dem Benutzer „myAdmin“ am MongoDB-Server anmeldest.

Führe den Befehl„mongosh“ aus, um dich am MongoDB-Server als Benutzer„myAdmin“ anzumelden, und gib dein Passwort ein, wenn du dazu aufgefordert wirst.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

mongodb anmelden

Nachdem du dich angemeldet hast, führe die folgende Abfrage aus, um den Verbindungsstatus zum MongoDB-Server zu überprüfen.

db.runCommand({connectionStatus : 1})

Unten siehst du, dass du dich als Benutzer„myAdmin“ mit dem MongoDB-Server verbunden hast.

Verbindung prüfen

Erstellen der ersten Datenbank und des ersten Benutzers

In diesem Abschnitt erstellst du eine neue Datenbank und einen neuen Benutzer, die für deine Anwendung über den MongoDB-Client „mongosh“ verwendet werden. Stelle also sicher, dass du dich in der„mongosh„-Umgebung befindest.

Führe zunächst die„use„-Abfrage aus, um die Zieldatenbank zu erstellen und zu wechseln. In diesem Beispiel erstellst du eine neue Datenbank„mydb„. Deine MongoDB-Eingabeaufforderung wird zu„mydb“ geändert.

use mydb

Führe nun die folgende Abfrage aus, um einen neuen Benutzer „myUser“ mit Lese- und Schreibrechten für die Datenbank„mydb“ zu erstellen. Gib ein neues Passwort ein, wenn du gefragt wirst.

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Neue Datenbank und Benutzer anlegen

Als Nächstes führst du die folgenden Abfragen aus, um die Datenbank„admin“ zu wechseln und die Liste der Benutzer auf deinem MongoDB-Server zu überprüfen.

use admin
db.system.users.find()

Du solltest sehen, dass die Benutzer„myAdmin“ und„myUser“ wie folgt erstellt wurden:

Gib nun„quit()“ ein, um den MongoDB-Server zu verlassen.

Benutzer auflisten

Melde dich schließlich mit dem folgenden Befehl als neuer Benutzer„myUser“ bei der Datenbank„mydb“ auf dem MongoDB-Server an. Gib dein Passwort ein, wenn du dazu aufgefordert wirst.

mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p

mongodb anmelden

Führe die folgende Abfrage aus, um deine aktuelle Verbindung zu überprüfen

db.runCommand({connectionStatus : 1})

Im Abschnitt„authInfo“ kannst du sehen, dass du dich als Benutzer„myUser“ und für die Datenbank„mydb“ authentifiziert hast.

Verbindung prüfen

Fazit

Herzlichen Glückwunsch! Du hast die Installation von MongoDB 7.0 auf einem Debian 12 Server abgeschlossen. Du hast auch gelernt, wie du den MongoDB-Server absicherst, indem du die Authentifizierung aktivierst und dann einen neuen Administrator-Benutzer für MongoDB anlegst. Schließlich hast du gelernt, wie du eine neue MongoDB-Datenbank und einen neuen Benutzer für deine Anwendungen anlegen kannst.

Das könnte dich auch interessieren …