Wähle einen Artikel
MongoDB auf VPS installieren
MongoDB auf VPS installieren

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

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
Terminalfenster zeigt MongoDB-Dienststatus: aktiv (running), PID 674, Speicher 90.0M.

Hat das geklappt, solltest du den Dienst noch so einstellen, dass er bei jedem Serverstart gleich mit hochgefahren wird.

sudo systemctl enable mongod
Terminal mit Prompt root@cs39185:~#, sudo systemctl enable mongodb; Ausgabe: Created symlink.

Nun kannst du noch mit einem einfachen Diagnose-Check prüfen, ob die Datenbank wirklich funktioniert:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Terminal: MongoDB-Shell-Ausgabe mit Verbindung zu localhost:27017, Server-Version 4.4.5, ok: 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.

Schwarzes Terminal mit weißen Monospace-Zeilen; u. a. 'Access control is not enabled for the data base.'

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.

Terminalausgabe: Prompt > show dsb und drei Zeilen: admin 0.000GB, config 0.000GB, local 0.000GB.

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:

Terminalfenster mit dem Befehl db.createUser(; Zeile mit user: 'MeinBenutzername', Enter password: und grünem Cursor.

Durch die Eingabe von pwd: passwordPrompt() wird nun eine sichere Passworteingabe angezeigt, wo du dein Passwort eingeben kannst. Danach wird der Benutzer erstellt.

Terminal mit MongoDB-Befehl: db.createUser; JSON zeigt Benutzername, Rollen; Eingabeaufforderung 'Enter password':.

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:

Schwarzes Terminal mit mehrzeiliger Ausgabe: '# how the process runs' und 'authorization: enabled' sowie grünes Kästchen.

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:

Terminal mit Befehlen zu mongod.conf und MongoDB-Dienst; Ausgabe zeigt Main PID 697, Speicher 17.5M, Started MongoDB-Server.

Loggst du dich nun einfach mit dem Befehl mongo ein, sieht das Ganze etwas anders aus:

Terminalfenster mit MongoDB-Shell; Version v4.4.5, Server-Version 4.4.5, Implicit-Session UUID, > show dbs

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
Terminalfenster mit Root-Prompt; Befehl: mongo -u MeinBenutzername -p --authenticationDatabase admin admin; MongoDB 4.4.5.

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-Shell am Terminal, Version v4.4.5; Passwortabfrage; Verbindung zu localhost; DBs admin, config, local (0.000GB).

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.

Zu unseren VPS Paketen

Nächster Artikel
Nextcloud per Docker auf VPS installieren
Weitere passende Themen