MongoDB 6.0 Community Edition: Installation und Konfiguration
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' ]
}
]