MongoDB auf VPS installieren
Diese Anleitung zeigt dir, wie du MongoDB auf einem VPS installierst.
Inhaltsverzeichnis
- MongoDB installieren
- MongoDB in Ubuntu 20.04 installieren
- MongoDB starten
- MongoDB Dienstbefehle
- MongoDB absichern
- MongoDB Server Installation und Konfiguration abgeschlossen
MongoDB installieren
MongoDB steht für „humongous database“, und bedeutet daher so viel wie „riesige Datenbank“. MongoDB arbeitet dokumentenbasiert, ist also eine NoSQL-Datenbank, und kann daher wesentlich größere Datenmengen schnell verarbeiten als SQL-Datenbanken.
Hierfür werden Dokumentensammlungen angelegt, die auch bequem über mehrere Datenbankserver verteilt werden können. Dokumente innerhalb einer Sammlung können verschiedene Felder und Strukturen haben, außerdem können Sie direkt angesprochen werden. Bei SQL wird immer die gesamte Tabelle angesprochen und muss entsprechend der Operation durchsucht und manipuliert werden, was bei sehr großen Datenmengen kaum noch handlebar ist.
Datenriesen wie Facebook und Netflix setzen auf MongoDB, damit die Millionen Benutzer in den Apps und an PCs, sowie Fernsehern immer ein schnelles und damit zufriedenstellendes Erlebnis haben.
Diese Anleitung zeigt die Installation auf einem VPS von easyname.
MongoDB in Ubuntu 20.04 installieren
Zuerst importierst du den MongoDB Public GPG Key.
sudo apt install curl
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Nun führst du das obligatorische Update der Paketquellen aus, installierst alle Updates und danach MongoDB:
sudo apt update
sudo apt upgrade
sudo apt install -y mongodb-org
MongoDB starten
Du hast MongoDB nun so eingerichtet, dass du mit systemctl den Server steuern kannst. Du brauchst also keine speziellen Befehle heraussuchen, sonst kannst den Datenbankserver einfach starten:
sudo systemctl start mongod.service
Dementsprechend kannst du den Status dann so prüfen:
sudo systemctl status mongod
Hat das geklappt, solltest du den Dienst noch so einstellen, dass er bei jedem Serverstart gleich mit hochgefahren wird.
sudo systemctl enable mongod
Nun kannst du noch mit einem einfachen Diagnose-Check prüfen, ob die Datenbank wirklich funktioniert:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
MongoDB Dienstbefehle
Herzlichen Glückwunsch! Du hast nun einen voll funktionsfähigen Datenbankserver mit MongoDB. Über diese Befehle kannst du den Dienst steuern:
sudo systemctl status mongod – Status des Dienstes prüfen
sudo systemctl stop mongod – Dienst anhalten
sudo systemctl start mongod – Dienst starten
sudo systemctl restart mongod – Dienst neustarten
sudo systemctl disable mongod – Dienst deaktivieren, er wird nicht beim Serverstart mit gestartet
sudo systemctl enable mongod – Dienst aktivieren, er wird beim Serverstart mit gestartet
MongoDB absichern
Wie auch MySQL, bzw. MariaDB, ist die Standardserverkonfiguration nicht sicher. Wir empfehlen daher dringend, den Server abzusichern.
In der Standardkonfiguration kann der Server zwar nur lokal angesprochen werden, dafür ist andererseits aber kein Login notwendig. Mit einem einfachen mongo kann jeder Benutzer auf den Datenbankserver zugreifen.
Um das zu ändern, gibt es in MongoDB einige Javascripte, die du nun ausführen solltest, um den Server abzusichern.
\>show dbs
zeigt alle Datenbanken des Servers.
Nach der Aktivierung der Authentifizierung wird sich die Anzeige etwas ändern. Du wechselst erst in die Datenbank „admin“, in der die Benutzer und Authentifizierungseinstellungen verwaltet werden.
\>use admin
Der Befehl wird durch „switched to db admin“ quittiert. Nun startest du die Einrichtung eines Admin-Benutzers. Beachte die Kommas und drücke nach jeder Zeile auf Enter.
\>db.createUser(
Du siehst drei Punkte. Beginne mit einer geschweiften Klammer
…{
Trage nun den user:-Befehl und einen neuen Benutzernamen ein.
…user: „MeinBenutzername“,
Du siehst nun nochmals drei Punkte, wo du den Passworterstellungsmodus startest:
…pwd: passwordPrompt(),
Als Letztes legst du noch die Rolle fest, die dieser Benutzer bekommen soll.
…roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
Schließe das Ganze mit einer geschweiften und einer runden Klammer ab:
…}
…)
Der ganze Block sieht dann so aus:
Durch die Eingabe von pwd: passwordPrompt() wird nun eine sichere Passworteingabe angezeigt, wo du dein Passwort eingeben kannst. Danach wird der Benutzer erstellt.
Du kannst den Datenbankserver nun mit exit verlassen.
Nun aktivierst du noch die Authentifizierung in der mongod.conf, damit die Änderung auch angewendet wird.
sudo nano /etc/mongod.conf
Suche nun nach der Sektion #security, die bisher auskommentiert ist und aktiviere sie. Entferne dazu das # vor security. Füge anschließend diesen Text ein:
` `authorization: enabled
Beachte zwei Leerschritte davor. Das Ganze sieht dann so aus:
Mit Strg+X, Y und Enter bestätigst du die Änderungen an der Datei und bist wieder in der Konsole.
Starte nun den MongoDB-Server neu und prüfe anschließend den Status:
- sudo systemctl restart mongod
- sudo systemctl status mongod
Es sollte nun wieder so aussehen:
Loggst du dich nun einfach mit dem Befehl mongo ein, sieht das Ganze etwas anders aus:
Warnungen sind verschwunden, genau wie die Datenbanken.
Logge dich aus dem Datenbankserver mit exit aus und probiere nun das richtige Login.
mongo -u MeinBenutzername -p --authenticationDatabase admin
Du wirst erst aufgefordert, dein Passwort einzugeben. War das richtig, siehst du diese Eingabeaufforderung. Mit show dbs bekommst du nun auch wieder alle Datenbanken angezeigt.
MongoDB Server Installation und Konfiguration abgeschlossen
Nun bist du mit allen Schritten fertig und kannst mit der sicheren Nutzung deiner Datenbank beginnen. Bei Fragen zu deinem easyname-Server stehen wir dir natürlich zur Verfügung.
easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.
easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.