Zum Hauptinhalt springen Skip to page footer

MongoDB 6.0 Community Edition: Installation und Konfiguration

| Tutorial

Erfahren Sie, wie Sie MongoDB 6.0 Community Edition auf Debian installieren und konfigurieren. Lernen Sie die Schritte zur Installation, Aktualisierung und Authentifizierung kennen, um die leistungsstarke NoSQL-Datenbank in Ihrer Produktionsumgebung einzusetzen.

MongoDB Version

In dieser Anleitung wird die MongoDB 6.0 Community Edition installiert. Um eine andere Version von MongoDB Community zu installieren, verwenden Sie das Versions-Dropdown-Menü oben links auf dieser Seite, um die Dokumentation für diese Version auszuwählen.

Hinweise

Plattform Unterstützung

MongoDB 6.0 Community Edition unterstützt die folgenden 64-Bit-Debian-Releases auf der x86_64-Architektur:

  • Debian 11 “Bullseye”
  • Debian 10 “Buster”

MongoDB unterstützt nur die 64-bit Versionen dieser Plattformen.

Hinweise für Produktionsumgebungen

Bevor Sie MongoDB in einer Produktionsumgebung einsetzen, sollten Sie das Dokument Produktionshinweise lesen, das Überlegungen zur Performance und Konfigurationsempfehlungen für MongoDB-Produktionseinsätze enthält.

Offizielle MongoDB Pakete

Um MongoDB Community auf Ihrem Debian-System zu installieren, verwendet diese Anleitung das offizielle mongodb-org-Paket, das von MongoDB Inc. gepflegt und unterstützt wird. Das offizielle mongodb-org Paket enthält immer die aktuellste Version von MongoDB und ist in seinem eigenen Paketarchiv verfügbar.

Wichtig

Das von Debian bereitgestellte mongodb-Paket wird nicht von MongoDB Inc. unterstützt und steht im Konflikt mit dem offiziellen mongodb-org-Paket. Wenn Sie das mongodb-Paket bereits auf Ihrem Debian-System installiert haben, müssen Sie es zuerst deinstallieren, bevor Sie mit dieser Anleitung fortfahren.

Installation der MongoDB Community Edition

Folgen Sie diesen Schritten, um die MongoDB Community Edition mit dem apt-Paketmanager zu installieren.

Importieren Sie den vom Paketverwaltungssystem verwendeten öffentlichen Schlüssel

Installieren Sie zunächst die benötigten Abhängigkeiten mit folgendem Befehl:

sudo apt-get install curl apt-transport-https software-properties-common gnupg2 -y 

Geben Sie folgenden Befehl ein, um den öffentlichen GPG-Schlüssel von MongoDB zu importieren https://pgp.mongodb.com/server-6.0.asc:

curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
--dearmor

Erstellen Sie eine Datei /etc/apt/sources.list.d/mongodb-org-6.0.list für MongoDB

Erstellen Sie die Listendatei mit dem passenden Befehl für Ihre Debian-Version:

  • Debian 11 „Bullseye“
  • Debian 10 „Buster“
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

Laden Sie die lokale Paketdatenbank neu

Geben Sie den folgenden Befehl ein, um die lokale Paketdatenbank neu zu laden:

sudo apt-get update

Installieren Sie die MongoDB-Pakete

Um die letzte stabile Version zu installieren, gehen Sie wie folgt vor

sudo apt-get install mongodb-org -y

Prüfen Sie dann die MongoDB-Version mit folgendem Befehl:

mongod --version
Ausgabe:
db version v6.0.6
Build Info: {
    "version": "6.0.6",
    "gitVersion": "26b4851a412cc8b9b4a18cdb6cd0f9f642e06aa7",
    "openSSLVersion": "OpenSSL 1.1.1n  15 Mar 2022",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "debian11",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Optional. Obwohl Sie jede verfügbare Version von MongoDB angeben können, wird apt-get die Pakete aktualisieren, sobald eine neuere Version verfügbar ist. Um unbeabsichtigte Upgrades zu vermeiden, können Sie das Paket auf die aktuell installierte Version setzen:

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

Ausführen der MongoDB Community Edition

ulimit Überlegungen

Die meisten Unix-ähnlichen Betriebssysteme begrenzen die Systemressourcen, die ein Prozess verwenden kann. Diese Begrenzungen können sich negativ auf den Betrieb von MongoDB auswirken und sollten daher angepasst werden. Siehe UNIX ulimit Einstellungen für empfohlene Einstellungen für Ihre Plattform.

Hinweis

Ab MongoDB 4.4 wird ein Startfehler erzeugt, wenn der ulimit-Wert für die Anzahl der offenen Dateien unter 64000 liegt.

Verzeichnisse

Standardmäßig legt eine MongoDB-Instanz ihre

  • ihre Datendateien in /var/lib/mongodb
  • ihre Logdateien in /var/log/mongodb


Wenn Sie mit dem Paketmanager installiert haben, wurden diese Standardverzeichnisse während der Installation angelegt. Wenn Sie manuell installiert haben, indem Sie die Tarballs heruntergeladen haben, können Sie die Verzeichnisse mit mkdir -p <Verzeichnis> oder sudo mkdir -p <Verzeichnis> erstellen, abhängig vom Benutzer, der MongoDB ausführen wird. (Informationen zu mkdir und sudo finden Sie in Ihrem Linux-Handbuch.) Standardmäßig wird MongoDB unter dem Benutzer mongodb ausgeführt. Wenn Sie den Benutzer, der den MongoDB-Prozess ausführt, ändern, müssen Sie auch die Berechtigungen für die Verzeichnisse /var/lib/mongodb und /var/log/mongodb ändern, um diesem Benutzer Zugriff auf diese Verzeichnisse zu geben.Um ein anderes Verzeichnis für die Protokolldatei und die Datendatei anzugeben, bearbeiten Sie die Einstellungen systemLog.path und storage.dbPath in der Datei /etc/mongod.conf. Stellen Sie sicher, dass der Benutzer, der MongoDB ausführt, Zugriff auf diese Verzeichnisse hat.

System initialisieren

Um Ihren mongod-Prozess zu starten und zu verwalten, verwenden Sie das in Ihrem Betriebssystem eingebaute init-System. Neuere Versionen von Linux benutzen normalerweise systemd (das den systemctl Befehl benutzt), während ältere Versionen von Linux normalerweise System V init (das den service Befehl benutzt) benutzen.

Wenn Sie nicht sicher sind, welches Init-System Ihre Plattform verwendet, führen Sie den folgenden Befehl aus:

ps --no-headers -o comm 1

Wählen Sie dann je nach Ergebnis die entsprechende Registerkarte aus:

  • systemd - wählen Sie den Reiter systemd (systemctl).
  • init - wählen Sie unten den Reiter System V Init (Service).

Starten Sie MongoDB

Sie können den Mongod-Prozess mit folgendem Befehl starten:

sudo systemctl start mongod

Wenn Sie beim Start von mongod eine Fehlermeldung ähnlich der folgenden erhalten:

Failed to start mongod.service: Unit mongod.service not found.

Führen Sie zunächst den folgenden Befehl aus:

sudo systemctl daemon-reload

Führen Sie dann den obigen Startbefehl erneut aus.

Prüfen Sie, ob MongoDB erfolgreich gestartet wurde

sudo systemctl status mongod

Sie können optional sicherstellen, dass MongoDB nach einem Systemneustart gestartet wird, indem Sie den folgenden Befehl eingeben:

sudo systemctl enable mongod

Stoppen Sie MongoDB

Bei Bedarf können Sie den mongod-Prozess mit folgendem Befehl stoppen:

sudo systemctl stop mongod

MongoDB neu starten

Sie können den mongod-Prozess neu starten, indem Sie den folgenden Befehl eingeben:

sudo systemctl restart mongod

Sie können den Status des Prozesses auf Fehler oder wichtige Meldungen überwachen, indem Sie die Ausgabe in der Datei /var/log/mongodb/mongod.log beobachten.

Beginnen Sie mit der Benutzung von MongoDB

Starten Sie eine mongosh-Sitzung auf demselben Host wie der mongod. Sie können mongosh ohne Kommandozeilenoptionen ausführen, um sich mit einem mongod zu verbinden, der auf Ihrem localhost mit dem Standardport 27017 läuft.

mongosh
Ausgabe:
Current Mongosh Log ID: 648c6aab25f748150f6a595c
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.10.0
Using MongoDB:          6.0.6
Using Mongosh:          1.10.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

------
   The server generated these startup warnings when booting
   2023-06-16T15:40:36.559+02:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
   2023-06-16T15:40:37.175+02:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
   2023-06-16T15:40:37.175+02:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
   2023-06-16T15:40:37.175+02:00: vm.max_map_count is too low
------

Aktivieren der MongoDB-Authentifizierung

Standardmäßig ist die MongoDB-Authentifizierung nicht aktiviert. Aus Sicherheitsgründen wird empfohlen, die MongoDB-Authentifizierung zu aktivieren.

Dazu muss ein administrativer Benutzer für MongoDB angelegt werden.

Wenn Sie noch nicht mit der MongoDB-Shell verbunden sind, verbinden Sie sich zunächst mit dieser mit folgendem Befehl:

mongosh

Sobald Sie verbunden sind, wechseln Sie zur Datenbank admin:

> use admin
Ausgabe:
switch to db admin

Als nächstes legen Sie einen Benutzer admin an und vergeben ein Passwort:

> db.createUser(
{
user: "mongoAdmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Ausgabe:
{ ok: 1 }

Drücken Sie anschließend die Tastenkombination STRG+D, um die MongoDB-Shell zu verlassen. Bearbeiten Sie nun die MongoDB-Konfigurationsdatei mit folgendem Befehl:

sudo nano /etc/mongod.conf

Fügen Sie die folgenden Zeilen hinzu, um die Authentifizierung zu aktivieren:

security:
  authorization: enabled

Speichern und schließen Sie die Datei und starten Sie den MongoDB-Dienst neu, um die Änderungen zu übernehmen.

systemctl restart mongod

Überprüfen der MongoDB-Verbindung

Die MongoDB-Authentifizierung ist nun aktiviert. Führen Sie nun den folgenden Befehl aus, um die MongoDB-Shell mit dem Benutzernamen und dem Passwort zu verbinden:

mongosh -u mongoAdmin -p

Nachdem Sie dann Ihr Passwort eingegeben haben und erfolgreich authentifiziert sind, erhalten Sie die folgende Ausgabe:

Enter password: *************
Current Mongosh Log ID: 648c74abd731b3809d930fa6
Connecting to:          mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.10.0
Using MongoDB:          6.0.6
Using Mongosh:          1.10.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

test>

Ändern Sie dann die Datenbank auf admin und listen Sie alle Benutzer mit folgendem Befehl auf:

> use admin
> show users
Ausgabe:
[
  {
    _id: 'admin.mongoAdmin',
    userId: new UUID("4665c45b-97f7-44f5-bdd0-00eb7f1f6986"),
    user: 'mongoAdmin',
    db: 'admin',
    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]