MongoDB auf Rocky Linux 9 installieren
MongoDB ist eine kostenfreie, quelloffene NoSQL-Datenbank, die Informationen in einem flexiblen, JSON-ähnlichen Format speichert. Dank ihres schemalosen Aufbaus können unstrukturierte Daten und Dokumente mit variabler Struktur gespeichert werden – und dennoch sind umfassende Indizierung, spontane Abfragen und Hochverfügbarkeit über Replikationssets möglich.
Diese Anleitung zeigt dir Schritt für Schritt, wie du MongoDB auf einem Rocky Linux 9 Server installierst, absicherst und durch das Erstellen von Beispieldaten die Funktionalität überprüfst.
Systemvoraussetzungen
Stelle sicher, dass folgende Voraussetzungen erfüllt sind:
- Ein funktionierender Server mit Rocky Linux 9.
- Zugriff über SSH als nicht-root Benutzer mit sudo-Rechten.
- Aktualisierte Systempakete.
Installation von MongoDB unter Rocky Linux 9
Da MongoDB nicht in den Standard-Repositories von Rocky Linux 9 enthalten ist, muss das passende Repository manuell hinzugefügt und MongoDB über DNF installiert werden.
Besuche zuerst die offizielle MongoDB-Release-Seite, um die aktuellste Version zu prüfen. Im Beispiel wird Version 8.0 verwendet.
Lege die Konfigurationsdatei für das MongoDB-Repository an:
$ sudo nano /etc/yum.repos.d/mongodb-org-8.0.repo
Füge folgende Inhalte in die Datei ein:
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-8.0.asc
Speichere die Datei und aktualisiere den Paketindex:
$ sudo dnf update
Installiere anschließend MongoDB:
$ sudo dnf -y install mongodb-org
Ersetze das Standardpaket für die MongoDB-Shell durch die Variante mit OpenSSL 3-Unterstützung:
$ sudo dnf -y swap mongodb-mongosh mongodb-mongosh-shared-openssl3
Da Rocky Linux 9 standardmäßig OpenSSL 3 verwendet, sorgt dieser Austausch für die nötige Kompatibilität zwischen MongoDB und der Systembibliothek.
MongoDB mit Systemd verwalten
MongoDB wird über den systemd-Dienst mongod
gesteuert. Mit den folgenden Befehlen richtest du den automatischen Start ein und überprüfst den aktuellen Status:
Automatischen Start beim Booten aktivieren:
$ sudo systemctl enable mongod
Datenbankdienst starten:
$ sudo systemctl start mongod
Status von MongoDB prüfen:
$ sudo systemctl status mongod
Beispielausgabe:
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running)
Docs: https://docs.mongodb.org/manual
Main PID: 6919 (mongod)
Memory: 149.8M
CGroup: /system.slice/mongod.service
└─6919 /usr/bin/mongod --config /etc/mongod.conf
MongoDB mit Benutzer-Authentifizierung absichern
Standardmäßig erzwingt MongoDB keine Authentifizierung. Um den Zugriff auf die Datenbank abzusichern, aktivierst du die passwortbasierte Anmeldung mit den folgenden Schritten.
Starte zunächst die MongoDB-Shell:
$ mongosh
Wechsle zur admin
-Datenbank:
> use admin
Erstelle einen neuen Benutzer mit administrativen Rechten:
> db.createUser(
{
user: "mongodbadmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
}
)
Die erfolgreiche Erstellung wird mit folgender Ausgabe bestätigt:
Enter password
***{ ok: 1 }
Zeige alle angelegten Benutzerkonten an, um die Erstellung zu überprüfen:
> db.getUsers()
Die Ausgabe sollte wie folgt aussehen:
{
users: [
{
_id: 'admin.mongodbadmin',
userId: UUID('93f37099-85f9-4b6e-a072-09c2b1045462'),
user: 'mongodbadmin',
db: 'admin',
roles: [
{ role: 'dbAdminAnyDatabase', db: 'admin' },
{ role: 'userAdminAnyDatabase', db: 'admin' },
{ role: 'readWriteAnyDatabase', db: 'admin' }
],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
],
ok: 1
}
Beende die MongoDB-Sitzung mit folgendem Befehl:
> exit
Bearbeite nun die MongoDB-Konfigurationsdatei, um die Authentifizierung zu aktivieren:
$ sudo nano /etc/mongod.conf
Füge am Ende der Datei folgende Konfiguration ein:
security:
authorization: enabled
Starte abschließend den MongoDB-Dienst neu, damit die Änderungen wirksam werden:
$ sudo systemctl restart mongod
Zugriff auf MongoDB und Verwaltung von Datenbanken
Nutze die folgenden Schritte, um dich über die MongoDB-Shell anzumelden, Benutzerkonten anzulegen, Datenbanken zu erstellen und Daten einzufügen.
Melde dich mit dem zuvor eingerichteten Administrator-Benutzer an der MongoDB-Shell an:
$ mongosh -u mongodbadmin -p --authenticationDatabase admin
Gib anschließend das Passwort für den Benutzer mongodbadmin
ein, wenn du dazu aufgefordert wirst.
Erstelle nun eine neue Datenbank mit dem Namen centron_test
:
> use centron_test
Lege in dieser Datenbank einen neuen Benutzer wie testuser
mit vollständigen Zugriffsrechten an:
> db.createUser(
{
user: "testuser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "centron_test" } ]
}
)
Wenn du zur Eingabe eines Passworts aufgefordert wirst, verwende ein sicheres Kennwort. Die erfolgreiche Erstellung wird wie folgt bestätigt:
Enter password:
********{ ok: 1 }
Beende die aktuelle MongoDB-Sitzung:
> exit
Verwendung des neuen Benutzers und Einfügen von Daten
Verbinde dich nun als testuser
mit der MongoDB-Shell. Du wirst zur Eingabe des Benutzerpassworts aufgefordert:
$ mongosh -u testuser -p --authenticationDatabase centron_test
Wechsle zur Ziel-Datenbank:
> use centron_test
Füge in einer neuen Collection messages
ein Dokument mit der Nachricht Greetings
ein:
> db.messages.insertOne({message: "Greetings" })
Die erfolgreiche Speicherung wird mit folgender Ausgabe bestätigt:
{
acknowledged: true,
insertedId: ObjectId('67750a2667bb6ae4a4fad9e0')
}
Zeige alle Einträge in der Collection messages
an, um den Datensatz zu überprüfen:
> db.messages.find()
Die Ausgabe sollte wie folgt aussehen:
[
{
_id: ObjectId('67750a2667bb6ae4a4fad9e0'),
message: 'Greetings'
}
]
Beende die MongoDB-Sitzung mit folgendem Befehl:
> exit
Fazit
Du hast MongoDB erfolgreich unter Rocky Linux 9 installiert und die Funktionsweise durch das Erstellen einer Datenbank, eines Benutzers und eines Testeintrags geprüft. Mit seiner flexiblen Struktur eignet sich MongoDB hervorragend zur Verwaltung von Collections, Benutzerrechten und umfangreichen unstrukturierten Daten. Weitere Optionen zur Konfiguration findest du in der offiziellen MongoDB-Dokumentation.