Wie man MongoDB auf einem VPS installiert und konfiguriert (Vollständiger 2024-Leitfaden)
MongoDB ist eine der am weitesten verbreiteten NoSQL-Datenbanken der Welt – und das aus gutem Grund. Sein flexibles Dokumentenmodell, die hohe Durchsatzleistung bei Lese-/Schreibvorgängen und die native horizontale Skalierbarkeit machen es zur bevorzugten Backend-Lösung für moderne APIs, SaaS-Plattformen, CRMs, E-Commerce-Engines und datenintensive Anwendungen. Im Gegensatz zu verwalteten Cloud-Datenbankdiensten gibt dir die Ausführung von MongoDB auf deinem eigenen VPS Hosting vollständige Kontrolle über Performance-Tuning, Sicherheitshärtung und langfristige Kosten.
Dieser Leitfaden führt dich durch eine produktionsgerechte Installation von MongoDB Community Edition 8.0 auf einem Linux VPS – mit Abdeckung des offiziellen Repository-Setups für Debian 12 und Ubuntu LTS, Service-Verwaltung, Benutzer- und Datenbankerstellung, Sicherheitshärtung (Authentifizierung, Netzwerk-Binding, Firewall-Regeln), Backup-Strategien und häufige Troubleshooting-Schritte. Egal ob du deine erste Anwendung startest oder eine bestehende Workload migrierst – dieser Leitfaden bringt MongoDB von Tag eins an zuverlässig zum Laufen.
1. Voraussetzungen
Stellen Sie vor Beginn sicher, dass die folgenden Bedingungen erfüllt sind:
| Anforderung | Details |
|---|---|
| VPS-Zugriff | Root- oder sudo-Level SSH-Zugriff |
| Betriebssystem | 64-Bit Debian 12 (Bookworm) oder Ubuntu 22.04/24.04 LTS |
| RAM | Mindestens 1 GB; 2 GB+ empfohlen für Produktion |
| Speicher | SSD-gestützter Speicher wird dringend empfohlen |
| Firewall | UFW oder iptables verfügbar |
> Wichtig: MongoDB 8.0 unterstützt offiziell Debian 12 und Ubuntu LTS-Versionen. Installieren Sie immer aus den offiziellen MongoDB-Repositories — verwenden Sie niemals das mongodb Paket, das mit Ihrer Linux-Distribution gebündelt ist, da es veraltet, nicht unterstützt und mit dem offiziellen mongodb-org Paket in Konflikt geraten kann.
Wenn Sie noch keinen Server haben, bieten AlexHost’s VPS Hosting Pläne SSD-gestützte Linux VPS-Instanzen auf hochperformanter Infrastruktur — ideal für die Ausführung von Produktions-Datenbankworkloads.
Aktualisieren Sie Ihr System zuerst
Beginnen Sie immer mit einem vollständig aktualisierten System:
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y gnupg curl2. MongoDB auf Debian 12 (Bookworm) installieren
MongoDB ist nicht in den Standard-Debian-Repositories verfügbar, daher müssen Sie das offizielle MongoDB APT-Repository manuell hinzufügen.
Schritt 1 — Importieren Sie den MongoDB GPG-Signaturschlüssel
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc |
sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpgDies lädt den GPG-Schlüssel herunter und speichert ihn, der zur Überprüfung der Paketintegrität verwendet wird. Ohne diesen Schritt wird APT sich weigern, Pakete aus dem MongoDB-Repository zu installieren.
Schritt 2 — Fügen Sie das offizielle MongoDB-Repository hinzu
echo "deb [signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg]
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list > /dev/nullSchritt 3 — Installieren Sie MongoDB Community Edition
sudo apt-get update
sudo apt-get install -y mongodb-orgAPT wird nun die neueste MongoDB 8.0-Version direkt von MongoDBs offiziellem CDN abrufen.
3. MongoDB auf Ubuntu LTS installieren (24.04 / 22.04)
Der Prozess ist fast identisch mit Debian, aber die Repository-URL unterscheidet sich je nach Ubuntu-Codename.
Schritt 1 — MongoDB GPG-Signaturschlüssel importieren
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmorSchritt 2 — Repository für Ihre Ubuntu-Version hinzufügen
Ubuntu 24.04 (Noble Numbat):
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ]
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.listUbuntu 22.04 (Jammy Jellyfish):
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ]
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.listSchritt 3 — MongoDB Community Edition installieren
sudo apt-get update
sudo apt-get install -y mongodb-org4. MongoDB-Service starten und aktivieren
Nach der Installation verwenden Sie systemctl, um MongoDB zu starten und so zu konfigurieren, dass es beim Neustart des Servers automatisch startet.
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod --no-pagerWarum daemon-reload?
Die offizielle MongoDB-Dokumentation empfiehlt ausdrücklich, systemctl daemon-reload auszuführen, bevor der Service gestartet wird. Wenn Sie diesen Schritt überspringen und den Fehler "Unit mongod.service not found" sehen, führen Sie zuerst daemon-reload aus – dies zwingt systemd, Unit-Dateien von der Festplatte neu zu lesen.
Erwartete Ausgabe
Ein funktionierender MongoDB-Service zeigt eine Ausgabe ähnlich wie:
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled)
Active: active (running) since ...Wenn der Status failed oder inactive anzeigt, gehen Sie zum Abschnitt Fehlerbehebung.
5. Datenbanken und Benutzer erstellen
MongoDB erzwingt nach einer Neuinstallation standardmäßig keine Authentifizierung. Das bedeutet, dass Sie Ihre Admin- und Anwendungsbenutzer vor der Aktivierung der Authentifizierung erstellen sollten — andernfalls riskieren Sie, sich selbst auszusperren.
MongoDB Shell öffnen
Verbinden Sie sich lokal mit MongoDB auf dem VPS:
mongoshSchritt 1 — Administrativen Benutzer erstellen
Wechseln Sie zur admin Datenbank und erstellen Sie ein privilegiertes Admin-Konto:
use admin
db.createUser({
user: "admin",
pwd: "STRONG_PASSWORD_HERE",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
})> Sicherheitstipp: Ersetzen Sie STRONG_PASSWORD_HERE durch ein zufällig generiertes Passwort mit mindestens 20 Zeichen. Verwenden Sie einen Passwort-Manager oder führen Sie openssl rand -base64 24 auf Ihrem Server aus, um eines zu generieren.
Schritt 2 — Anwendungsdatenbank und Benutzer erstellen
Erstellen Sie eine dedizierte Datenbank und einen Benutzer mit minimalen Berechtigungen, der nur auf diese Datenbank beschränkt ist:
use myapp
db.createUser({
user: "myapp_user",
pwd: "STRONG_PASSWORD_HERE",
roles: [
{ role: "readWrite", db: "myapp" }
]
})Dies folgt dem Prinzip der minimalen Berechtigung — Ihre Anwendung hat nur Lese-/Schreibzugriff auf ihre eigene Datenbank, nicht auf die gesamte MongoDB-Instanz.
Schritt 3 — Überprüfen Sie, ob Benutzer erstellt wurden
use admin
db.getUsers()Beenden Sie die Shell:
exit6. Sichern Sie Ihre MongoDB-Instanz
Dies ist der kritischste Abschnitt des Leitfadens. Falsch konfigurierte MongoDB-Instanzen, die dem öffentlichen Internet ausgesetzt sind, waren für zahlreiche hochkarätige Datenverletzungen verantwortlich. Mongodbś eigene Sicherheitscheckliste ist eindeutig: härten Sie Ihre Instanz, bevor Sie sie einem Netzwerk aussetzen.
A) MongoDB nur an Localhost binden (empfohlener Standard)
Standardmäßig kann MongoDB auf allen Netzwerkschnittstellen lauschen. Beschränken Sie es auf Localhost, es sei denn, Sie haben einen spezifischen, begründeten Bedarf für Fernzugriff.
Bearbeiten Sie /etc/mongod.conf:
net:
bindIp: 127.0.0.1Wenden Sie die Änderung an:
sudo systemctl restart mongodDies stellt sicher, dass MongoDB nur vom Server selbst erreichbar ist – nicht vom öffentlichen Internet.
B) Authentifizierung aktivieren
Ohne aktivierte Authentifizierung kann sich jeder lokale Prozess ohne Passwort mit MongoDB verbinden. Bearbeiten Sie /etc/mongod.conf:
security:
authorization: enabledStarten Sie den Dienst neu:
sudo systemctl restart mongodTesten Sie nun, dass die Authentifizierung erzwungen wird:
mongosh -u admin -p --authenticationDatabase adminC) Firewall konfigurieren
Wenn Sie Fernverbindungen zulassen müssen (z. B. von einem Anwendungsserver auf einem anderen Computer), beschränken Sie Port 27017 auf eine bestimmte vertrauenswürdige IP-Adresse. Öffnen Sie Port 27017 niemals für 0.0.0.0/0.
Mit UFW:
sudo ufw allow from YOUR.TRUSTED.IP.ADDRESS to any port 27017 proto tcp
sudo ufw enable
sudo ufw statusÜberprüfen Sie, ob die Regel aktiv ist:
sudo ufw status verboseD) SSH-Tunneling für sicheren Fernzugriff verwenden (Best Practice)
Die sicherste Möglichkeit, auf MongoDB remote zuzugreifen, ist ein SSH-Tunnel. Dies vermeidet das Öffnen von Port 27017 vollständig und verschlüsselt den gesamten Datenverkehr während der Übertragung.
Von Ihrem lokalen Computer:
ssh -L 27017:127.0.0.1:27017 root@YOUR_VPS_IPVerbinden Sie sich dann von Ihrer lokalen MongoDB-Shell so, als wäre sie lokal:
mongosh "mongodb://myapp_user:PASS@127.0.0.1:27017/myapp?authSource=myapp"Dieser Ansatz wird dringend für Entwickler empfohlen, die von Laptops oder Remote-Workstations aus auf Produktionsdatenbanken zugreifen.
Zusammenfassung der Sicherheitshärtung
| Sicherheitsmaßnahme | Konfigurationsort | Priorität |
|---|---|---|
| Nur an Localhost binden | /etc/mongod.conf → net.bindIp | Kritisch |
| Authentifizierung aktivieren | /etc/mongod.conf → security.authorization | Kritisch |
| Firewall-Portbeschränkung | UFW / iptables | Hoch |
| SSH-Tunnel für Fernzugriff | Client-seitige SSH-Konfiguration | Hoch |
| Least-Privilege-DB-Benutzer verwenden | mongosh → db.createUser() | Hoch |
| MongoDB aktualisiert halten | apt-get upgrade mongodb-org | Mittel |
7. Sicherung und Wiederherstellung
Regelmäßige Sicherungen sind für jede Produktionsdatenbank unverzichtbar. MongoDB enthält mongodump und mongorestore als Teil des MongoDB Database Tools-Pakets.
Erstellen Sie ein komprimiertes Sicherungsarchiv
mongodump
--username admin
--password STRONG_PASSWORD_HERE
--authenticationDatabase admin
--archive=/root/mongo-backup.archive
--gzipDies erstellt eine einzelne komprimierte Archivdatei mit einem logischen Dump aller Datenbanken.
Wiederherstellung aus einem Sicherungsarchiv
mongorestore
--username admin
--password STRONG_PASSWORD_HERE
--authenticationDatabase admin
--archive=/root/mongo-backup.archive
--gzipAutomatisieren Sie Sicherungen mit Cron
Planen Sie tägliche Sicherungen mit cron:
crontab -eFügen Sie die folgende Zeile hinzu, um täglich um 2:00 Uhr eine Sicherung durchzuführen:
0 2 * * * mongodump --username admin --password PASS --authenticationDatabase admin --archive=/root/backups/mongo-$(date +%F).archive --gzip> Profi-Tipp: Für externe Redundanz sollten Sie erwägen, Sicherungsarchive mit rsync oder rclone mit einem externen Speicherort zu synchronisieren. Speichern Sie niemals Ihre einzige Sicherung auf demselben Server wie Ihre Datenbank.
8. Fehlerbehebung bei häufigen Problemen
Überprüfen Sie die Service-Protokolle
Der erste Ort, an dem Sie nachschauen sollten, wenn MongoDB nicht startet oder sich unerwartet verhält:
sudo journalctl -u mongod --no-pager -n 200Dies zeigt die letzten 200 Zeilen von MongoDBs systemd-Journal — normalerweise ausreichend, um die Grundursache zu identifizieren.
Überprüfen Sie, ob MongoDB auf dem erwarteten Port lauscht
sudo ss -lntp | grep 27017Erwartete Ausgabe, wenn MongoDB läuft und an localhost gebunden ist:
LISTEN 0 128 127.0.0.1:27017 0.0.0.0:* users:(("mongod",...))Wenn keine Ausgabe vorhanden ist, läuft MongoDB nicht oder ist an eine andere Schnittstelle gebunden.
Überprüfen Sie die installierte MongoDB-Version
mongod --versionHäufige Fehlermeldungen und Lösungen
| Fehler | Wahrscheinliche Ursache | Lösung | |
|---|---|---|---|
Unit mongod.service not found | systemd hat die Unit-Datei nicht geladen | Führen Sie sudo systemctl daemon-reload aus | |
Address already in use | Port 27017 wird von einem anderen Prozess belegt | Führen Sie `sudo ss -lntp | grep 27017` aus, um den Konflikt zu identifizieren |
Authentication failed | Falsche Anmeldedaten oder falscher authSource | Überprüfen Sie Benutzername, Passwort und authenticationDatabase | |
Connection refused | MongoDB läuft nicht oder ist an die falsche IP gebunden | Überprüfen Sie bindIp in mongod.conf und den Service-Status | |
mongod.conf permission denied | Problem mit Dateiberechtigungen | Führen Sie sudo chmod 600 /etc/mongod.conf aus |
9. Abschließende Gedanken
Die Ausführung von MongoDB auf einem VPS ist ein bewährter, kostengünstiger Ansatz für Produktionsworkloads, die Flexibilität, Leistung und vollständige Infrastrukturkontrolle erfordern. Indem Sie dieser Anleitung gefolgt sind, haben Sie MongoDB 8.0 aus offiziellen Repositories installiert, Authentifizierung und Netzwerkbindung konfiguriert, Datenbankbenutzer mit minimalen Berechtigungen erstellt, Firewall-Regeln eingerichtet und eine Backup-Routine etabliert.
Einige wichtige Erkenntnisse zum Merken:
- Aktivieren Sie immer Authentifizierung — eine nicht authentifizierte MongoDB-Instanz ist eine kritische Sicherheitslücke.
- Exponieren Sie Port 27017 niemals dem öffentlichen Internet — verwenden Sie SSH-Tunneling oder beschränken Sie den Zugriff auf bestimmte vertrauenswürdige IPs.
- Halten Sie MongoDB aktuell — führen Sie
sudo apt-get upgrade mongodb-orgregelmäßig aus, um Sicherheitspatches zu erhalten. - Testen Sie Ihre Backups — ein Backup, das Sie nie wiederhergestellt haben, ist ein Backup, dem Sie nicht vertrauen können.
Für Teams, die eine zuverlässige, leistungsstarke Grundlage für MongoDB-Bereitstellungen benötigen, bietet AlexHost’s VPS Hosting SSD NVMe-Speicher, vollständigen Root-Zugriff und flexible Ressourcenskalierung. Wenn Ihre Workload über einen einzelnen VPS hinauswächst, bieten Dedicated Server dedizierte CPU- und RAM-Ressourcen ohne Nachbarschaftsprobleme — ideal für hochfrequente MongoDB-Replikatgruppen oder Sharded Cluster.
Benötigen Sie einen kompletten Hosting-Stack? Kombinieren Sie Ihren Datenbank-VPS mit Shared Web Hosting für Ihr Front-End oder statische Assets und sichern Sie Ihren Anwendungsdatenverkehr mit einem SSL-Zertifikat, um Daten während der Übertragung zwischen Ihren Benutzern und Ihren Servern zu schützen.
*Zuletzt aktualisiert für MongoDB Community Edition 8.0 auf Debian 12 (Bookworm) und Ubuntu 22.04/24.04 LTS.*
bei allen Hosting-Diensten