Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung Virtuelle Server

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:

AnforderungDetails
VPS-ZugriffRoot- oder sudo-Level SSH-Zugriff
Betriebssystem64-Bit Debian 12 (Bookworm) oder Ubuntu 22.04/24.04 LTS
RAMMindestens 1 GB; 2 GB+ empfohlen für Produktion
SpeicherSSD-gestützter Speicher wird dringend empfohlen
FirewallUFW 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 curl

2. 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.gpg

Dies 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/null

Schritt 3 — Installieren Sie MongoDB Community Edition

sudo apt-get update
sudo apt-get install -y mongodb-org

APT 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 --dearmor

Schritt 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.list

Ubuntu 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.list

Schritt 3 — MongoDB Community Edition installieren

sudo apt-get update
sudo apt-get install -y mongodb-org

4. 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-pager

Warum 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:

mongosh

Schritt 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:

exit

6. 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.1

Wenden Sie die Änderung an:

sudo systemctl restart mongod

Dies 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: enabled

Starten Sie den Dienst neu:

sudo systemctl restart mongod

Testen Sie nun, dass die Authentifizierung erzwungen wird:

mongosh -u admin -p --authenticationDatabase admin

C) 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 verbose

D) 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_IP

Verbinden 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ßnahmeKonfigurationsortPriorität
Nur an Localhost binden/etc/mongod.confnet.bindIpKritisch
Authentifizierung aktivieren/etc/mongod.confsecurity.authorizationKritisch
Firewall-PortbeschränkungUFW / iptablesHoch
SSH-Tunnel für FernzugriffClient-seitige SSH-KonfigurationHoch
Least-Privilege-DB-Benutzer verwendenmongoshdb.createUser()Hoch
MongoDB aktualisiert haltenapt-get upgrade mongodb-orgMittel

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 
  --gzip

Dies 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 
  --gzip

Automatisieren Sie Sicherungen mit Cron

Planen Sie tägliche Sicherungen mit cron:

crontab -e

Fü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 200

Dies 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 27017

Erwartete 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 --version

Häufige Fehlermeldungen und Lösungen

FehlerWahrscheinliche UrsacheLösung
Unit mongod.service not foundsystemd hat die Unit-Datei nicht geladenFühren Sie sudo systemctl daemon-reload aus
Address already in usePort 27017 wird von einem anderen Prozess belegtFühren Sie `sudo ss -lntpgrep 27017` aus, um den Konflikt zu identifizieren
Authentication failedFalsche Anmeldedaten oder falscher authSourceÜberprüfen Sie Benutzername, Passwort und authenticationDatabase
Connection refusedMongoDB läuft nicht oder ist an die falsche IP gebundenÜberprüfen Sie bindIp in mongod.conf und den Service-Status
mongod.conf permission deniedProblem mit DateiberechtigungenFü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-org regelmäß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.*