Wie man MongoDB auf Ubuntu 18.04 LTS installiert und konfiguriert
MongoDB ist eine NoSQL-Datenbank, die eine hohe Leistung, Hochverfügbarkeit und automatische Skalierung der Datenbank auf Unternehmensebene bietet. MongoDB ist eine NoSQL-Datenbank, so dass Sie SQL (Structured Query Language) nicht verwenden können, um Daten einzufügen und abzurufen, und es speichert keine Daten in Tabellen wie MySQL oder Postgres. Die Daten werden in einer „Dokument“-Struktur im JSON-Format (in MongoDB BSON genannt) abgelegt. MongoDB wurde 2009 eingeführt und wird derzeit von MongoDB Inc. entwickelt.
MongoDB bietet nur Pakete für 64-Bit-LTS (long-term support) Ubuntu-Versionen an. Zum Beispiel 14.04 LTS (vertrauenswürdig), 16.04 LTS (xenial), 18.04 LTS (bionisch) und so weiter.
In diesem Tutorial werde ich MongoDB 4.0 auf Ubuntu 18.04 LTS installieren.
Voraussetzungen
- Ubuntu Server 18.04 – 64 bit
- Root-Rechte
Was wir in diesem Tutorial tun werden:
- MongoDB installieren
- MongoDB konfigurieren
- Fazit
MongoDB auf Ubuntu 18.04 LTS installieren
Schritt 1 – Importieren des öffentlichen Schlüssels
GPG-Schlüssel des Software-Distributors werden vom Ubuntu-Paketmanager apt (Advanced Package Tool) benötigt, um die Konsistenz und Authentizität des Pakets sicherzustellen. Führen Sie diesen Befehl aus, um MongoDB-Schlüssel auf Ihren Server zu importieren.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4
Schritt 2 – Erstellen der Orderbuchdatei MongoDB
Erstellen Sie mit diesem Befehl eine MongoDB-Listendatei in /etc/apt/sources.list.d/:
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Schritt 3 – Aktualisieren des Repositorys
das Repository mit dem Befehl apt aktualisieren:
sudo apt-get update
Schritt 4 – MongoDB installieren
Jetzt können Sie MongoDB installieren, indem Sie diesen Befehl eingeben:
sudo apt-get install -y mongodb-org
Der MongoDB apt-Installer hat automatisch eine mongod.service Datei für Systemd erstellt, so dass es nicht mehr notwendig ist, diese manuell zu erstellen.
Starten Sie MongoDB und fügen Sie es als Dienst hinzu, der beim Booten gestartet werden soll:
sudo systemctl start mongod
sudo systemctl enable mongod
Überprüfen Sie nun, ob MongoDB auf Port 27017 mit dem Befehl netstat gestartet wurde.
sudo netstat -plntu
MongoDB-Benutzername und Passwort konfigurieren
Wenn die MongoDB-Pakete installiert sind, können Sie Benutzername und Passwort für den Datenbankserver konfigurieren:
Schritt 1 – Offene Mongoschale
Bevor Sie einen Benutzernamen und ein Passwort für MongoDB einrichten, müssen Sie die MongoDB-Shell auf Ihrem Server öffnen. Du kannst dich durch Tippen einloggen:
mongo
Wenn Sie einen Fehler erhalten, ist die globale Initialisierung fehlgeschlagen: BadValue Ungültig oder kein Benutzer-Locale gesetzt. Bitte stellen Sie sicher, dass die LANG- und/oder LC_*-Umgebungsvariablen korrekt gesetzt sind, versuchen Sie den Befehl:
export LC_ALL=C mongo
Schritt 2 – Wechseln Sie zum Datenbankadministrator
Sobald Sie sich in der MongoDB-Shell befinden, wechseln Sie zur Datenbank mit dem Namen admin:
use admin
Schritt 3 – Erstellen des Root-Benutzers
Erstellen Sie den Root-Benutzer mit diesem Befehl:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Desc: Erstellen Sie eine Benutzerverwaltung mit dem Passwort admin123 und haben Sie die Berechtigung/Rolle als root und die Datenbank ist admin.
Geben Sie nun exit ein, um die MongoDB-Shell zu verlassen.
exit
Und du bist wieder auf der Linux-Shell.
Schritt 4 – MongoDB-Authentifizierung aktivieren
Bearbeiten Sie die mongodb-Servicedatei ‚/lib/systemd/system/system/mongod.service‘ mit Ihrem Editor.
sudo nano /lib/systemd/system/mongod.service
Fügen Sie in der Zeile 9 von‘ExecStart‚ die neue Option‘–auth‚ hinzu.
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
Speichern Sie die Servicedatei und beenden Sie nano.
Laden Sie den Dienst systemd neu:
sudo systemctl daemon-reload
Schritt 5 – Starten Sie MongoDB neu und versuchen Sie, eine Verbindung herzustellen.
Starten Sie nun MongoDB neu und verbinden Sie sich mit dem erstellten Benutzer.
sudo service mongod restart
und verbinden Sie sich mit der MongoDB-Shell mit diesem Befehl:
mongo -u admin -p admin123 --authenticationDatabase admin
und Sie werden die Ausgabe so sehen:
Externen Zugriff ermöglichen und die UFW Firewall konfigurieren
UFW ist die Standard-Firewall in Ubuntu. In diesem Kapitel werde ich zeigen, wie man UFW so konfiguriert, dass es externen Zugriff auf MongoDB ermöglicht.
Überprüfen des UFW-Status
sudo ufw status
Wenn das Ergebnis ist:
Status: inactive
Aktivieren Sie UFW mit diesem Befehl und öffnen Sie zuerst den SSH-Port, wenn Sie über SSH verbunden sind:
sudo ufw allow ssh sudo ufw enable
bevor Sie mit den nächsten Schritten fortfahren.
Aus Sicherheitsgründen sollten Sie den Zugriff auf den MongoDB-Port 27017 nur von IP-Adressen erlauben, die auf die Datenbank zugreifen müssen. Standardmäßig kann localhost immer darauf zugreifen, so dass der MongoDB-Port für IP 127.0.0.0.0.1 nicht geöffnet werden muss.
UFW Firewall Syntax
sudo ufw allow from <target> to <destination> port <port number>
Öffnen Sie den MongoDB-Port in UFW.
Um den Zugriff von der externen IP 192.168.1.10 auf MongoDB zu ermöglichen, verwenden Sie diesen Befehl:
sudo ufw allow from 192.168.1.10 to any port 27017
Ersetzen Sie die IP-Adresse im obigen Befehl durch die externe IP-Adresse, die Sie für den Zugriff auf MongoDB verwenden möchten.
Wenn Sie den MongoDB-Port für eine beliebige IP öffnen möchten, z.B. wenn Sie ihn in einem lokalen Netzwerk betreiben und alle Systeme in diesem Netzwerk auf MongoDB zugreifen können sollen, dann verwenden Sie diesen Befehl:
sudo ufw allow 27017
Überprüfen Sie mit diesem Befehl den Status der UFW-Firewall:
sudo ufw status
MongoDB hört standardmäßig auf localhost, um die Datenbank von außen zugänglich zu machen, müssen wir sie neu konfigurieren, um auch auf die Server-IP-Adresse zu hören.
Öffnen Sie die Datei mongod.conf im Nano-Editor:
sudo nano /etc/mongod.conf
und fügen Sie die IP-Adresse des Servers in der Zeile bind_ip wie folgt hinzu:
# network interfaces net: port: 27017 bindIp: 127.0.0.1,192,168.1.100
Ersetzen Sie 192.168.1.100 durch die IP Ihres Servers und starten Sie MongoDB neu, um die Änderungen zu übernehmen.
sudo service mongod restart
Jetzt können Sie über das Netzwerk auf den MongoDB-Datenbankserver zugreifen.
Abbild der virtuellen Maschine
Dieses Tutorial ist als gebrauchsfertige virtuelle Maschine im OVA / OVF-Format für Howtoforge-Abonnenten verfügbar. Das VM-Format ist kompatibel mit VMWare und Virtualbox und anderen Tools, die das Ei- oder ovf-Format importieren können. Den Download-Link findest du im rechten Menü oben. Klicken Sie auf den Dateinamen, um den Download zu starten.
Die Anmeldedaten der VM lauten:
SSH-Anmeldung
Benutzername:
Administrator-Passwort: howtoforge
Der Administratorbenutzer hat sudo-Berechtigungen.
Bitte ändern Sie die Passwörter nach dem ersten Start.
Die VM ist für die statische IP 192.168.1.100 konfiguriert. Eine Anleitung zum Ändern der statischen IP finden Sie hier.
Fazit
MongoDB ist eine bekannte NoSQL-Datenbank, die eine hohe Performance, hohe Verfügbarkeit und automatische Skalierung bietet. Es unterscheidet sich von RDBMS wie MySQL, PostgreSQL und SQLite dadurch, dass es kein SQL zum Setzen und Abrufen von Daten verwendet. MongoDB speichert Daten in `Dokumenten` namens BSON (binäre Darstellung von JSON mit Zusatzinformationen). MongoDB ist nur für den 64-Bit-Langzeitsupport des Ubuntu-Release verfügbar.