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.
Passende Infrastruktur bei centron
Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
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.repoFü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.ascSpeichere die Datei und aktualisiere den Paketindex:
$ sudo dnf updateInstalliere anschließend MongoDB:
$ sudo dnf -y install mongodb-orgErsetze das Standardpaket für die MongoDB-Shell durch die Variante mit OpenSSL 3-Unterstützung:
$ sudo dnf -y swap mongodb-mongosh mongodb-mongosh-shared-openssl3Da 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 mongodDatenbankdienst starten:
$ sudo systemctl start mongodStatus von MongoDB prüfen:
$ sudo systemctl status mongodBeispielausgabe:
● 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.confMongoDB 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:
$ mongoshWechsle zur admin-Datenbank:
> use adminErstelle 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:
> exitBearbeite nun die MongoDB-Konfigurationsdatei, um die Authentifizierung zu aktivieren:
$ sudo nano /etc/mongod.confFüge am Ende der Datei folgende Konfiguration ein:
security:
authorization: enabledStarte abschließend den MongoDB-Dienst neu, damit die Änderungen wirksam werden:
$ sudo systemctl restart mongodZugriff 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 adminGib 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_testLege 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:
> exitVerwendung 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_testWechsle zur Ziel-Datenbank:
> use centron_testFü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:
> exitFazit
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.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.