MongoDB ist eine NoSQL-Datenbank, die eine hohe Leistung, hohe Verfügbarkeit und automatische Skalierung der Datenbank auf Unternehmensebene bietet. MongoDB ist eine NoSQL-Datenbank, daher können Sie SQL (Structured Query Language) nicht zum Einfügen und Abrufen von Daten verwenden, 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) gespeichert. MongoDB wurde 2009 eingeführt und wird derzeit von MongoDB Inc. entwickelt.
MongoDB bietet nur Pakete für 64-Bit-LTS-Ubuntu-Versionen (Langzeitunterstützung) an. Zum Beispiel 14.04 LTS (trusty), 16.04 LTS (xenial), 18.04 LTS (bionic) und so weiter.
In diesem Tutorial installiere ich MongoDB 4.0 auf Ubuntu 18.04 LTS.
Voraussetzungen
- Ubuntu-Server 18.04 - 64-Bit
- Root-Rechte
Was wir in diesem Tutorial tun werden:
- Installieren Sie MongoDB
- MongoDB konfigurieren
- Schlussfolgerung
Installieren Sie MongoDB auf Ubuntu 18.04 LTS
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 – Quelllistendatei MongoDB erstellen
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 – Repository aktualisieren
Aktualisieren Sie das Repository mit dem apt-Befehl:
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
Das Installationsprogramm von MongoDB apt hat automatisch eine mongod.service-Datei für Systemd erstellt, sodass Sie sie nicht mehr manuell erstellen müssen.
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 netstat-Befehl gestartet wurde.
sudo netstat -plntu
MongoDB-Benutzernamen und -Passwort konfigurieren
Wenn die MongoDB-Pakete installiert sind, können Sie den Benutzernamen und das Passwort für den Datenbankserver konfigurieren:
Schritt 1 - Mongo-Shell öffnen
Bevor Sie einen Nutzernamen und ein Passwort für MongoDB einrichten, müssen Sie die MongoDB-Shell auf Ihrem Server öffnen. Sie können sich anmelden, indem Sie Folgendes eingeben:
mongo
Wenn Sie die Fehlermeldung Globale Initialisierung fehlgeschlagen erhalten:BadValue Invalid or no user locale set. Bitte stellen Sie sicher, dass die Umgebungsvariablen LANG und/oder LC_* richtig eingestellt sind, versuchen Sie es mit dem 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 – Root-Benutzer erstellen
Erstellen Sie den Root-Benutzer mit diesem Befehl:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Beschreibung: Erstellen Sie den Benutzer admin 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 Sie befinden sich wieder auf der Linux-Shell.
Schritt 4 – MongoDB-Authentifizierung aktivieren
Bearbeiten Sie die Mongodb-Dienstdatei „/lib/systemd/system/mongod.service“ mit Ihrem Editor.
sudo nano /lib/systemd/system/mongod.service
Auf der 'ExecStart ' Zeile 9, fügen Sie 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 systemd-Dienst 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 stellen Sie mit diesem Befehl eine Verbindung zur MongoDB-Shell her:
mongo -u admin -p admin123 --authenticationDatabase admin
und Sie sehen die Ausgabe wie folgt:
Aktivieren Sie den externen Zugriff und konfigurieren Sie die UFW-Firewall
UFW ist die Standard-Firewall in Ubuntu. In diesem Kapitel werde ich zeigen, wie UFW konfiguriert wird, um externen Zugriff auf MongoDB zu ermöglichen.
Überprüfen Sie den 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 zulassen, die auf die Datenbank zugreifen müssen. Standardmäßig kann localhost immer darauf zugreifen, sodass der MongoDB-Port für IP 127.0.0.1 nicht geöffnet werden muss.
UFW-Firewall-Syntax
sudo ufw allow from <target> to <destination> port <port number>
MongoDB-Port in UFW öffnen
Verwenden Sie diesen Befehl, um den Zugriff von der externen IP 192.168.1.10 auf MongoDB zuzulassen:
sudo ufw allow from 192.168.1.10 to any port 27017
Ersetzen Sie die IP-Adresse im obigen Befehl durch die externe IP, der Sie Zugriff auf MongoDB gewähren möchten.
Wenn Sie den MongoDB-Port für eine beliebige IP öffnen möchten, z. Falls Sie es in einem lokalen Netzwerk ausführen und alle Systeme in diesem Netzwerk auf MongoDB zugreifen können, verwenden Sie diesen Befehl:
sudo ufw allow 27017
Überprüfen Sie den Status der UFW-Firewall mit diesem Befehl:
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 wie folgt in die bind_ip-Zeile ein:
# 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 dann MongoDB neu, um die Änderungen zu übernehmen.
sudo service mongod restart
Jetzt können Sie über das Netzwerk auf den MongoDB-Datenbankserver zugreifen.
Image der virtuellen Maschine
Dieses Tutorial ist als gebrauchsfertige virtuelle Maschine im OVA/OVF-Format für Howtoforge-Abonnenten verfügbar. Das VM-Format ist mit VMWare und Virtualbox und anderen Tools kompatibel, die das ova- oder ovf-Format importieren können. Sie finden den Download-Link 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 Booten.
Die VM ist für die statische IP 192.168.1.100 konfiguriert. Eine Anleitung zum Ändern der statischen IP finden Sie hier.
Schlussfolgerung
MongoDB ist eine bekannte NoSQL-Datenbank, die hohe Leistung, hohe Verfügbarkeit und automatische Skalierung bietet. Es unterscheidet sich von RDBMS wie MySQL, PostgreSQL und SQLite, da es kein SQL zum Festlegen und Abrufen von Daten verwendet. MongoDB speichert Daten in „Dokumenten“ namens BSON (binäre Darstellung von JSON mit zusätzlichen Informationen). MongoDB ist nur für die Ubuntu-Version mit 64-Bit-Langzeitunterstützung verfügbar.