MongoDB ist eine Dokumentendatenbank, die Daten in JSON-ähnlicher Form speichert, was ein revolutionärer Ansatz im Gegensatz zu traditionellen relationalen Datenbanken ist. Dies bedeutet nicht, dass SQL-Datenbanken in absehbarer Zeit aussterben werden; Sie werden noch lange da sein, wenn Sie strukturierte Daten speichern müssen.
Davon abgesehen bekommt MongoDB immer mehr Anwendungsfälle; die Fähigkeit, Daten in einer Form zu speichern, die sich spontan ändern kann, sind Dinge, mit denen gerechnet werden muss.
In diesem Tutorial installieren wir die neueste Community-Version dieser NoSQL-Datenbank unter Verwendung des Tarball-Pakets auf einem RHEL 8 / CentOS 8. Damit dies reibungslos funktioniert, richten wir die minimale Umgebung ein und testen unsere Konfiguration und den laufenden Dienst.
In diesem Tutorial lernen Sie:
- Wie man MongoDB-Tarball herunterlädt und extrahiert
- Einrichten der Umgebung für den Dienst
- Wie man den Mongod-Dienst verwaltet
- Wie man sich bei der Mongo-Shell anmeldet, Beispieldaten einfügt und abfragt
Beispielabfrage in mongodb.
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | MongoDB 4 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Mongodb auf RHEL 8 / CentOS 8 Schritt-für-Schritt-Anleitung installieren
Wir müssen vor der Installation eine URL sammeln. Dazu müssen wir die MongoDB Download Center Community-Site besuchen, das Betriebssystem und die Version auswählen (in diesem Fall Linux 64bit Legacy, wir benötigen den Tarball). Während uns eine Download-Schaltfläche zur Verfügung gestellt wird, erhalten wir unten auch eine direkte URL, die wir direkt vom Zielcomputer aus verwenden können.
Dies erspart uns, das Paket über den Browser herunterzuladen und es dann auf den Zielcomputer zu übertragen, vorausgesetzt, wir haben vom Ziel aus Internetzugang. Notieren Sie sich also die URL, wir werden sie in Kürze verwenden.
- Wir speichern die Binärdateien unter
/opt
. Auf der Zielmaschine geben wir das Verzeichnis ein:# cd /opt
Und laden Sie den Tarball herunter, indem Sie die zuvor erworbene URL an
wget
übergeben :# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz --2019-01-03 16:49:59-- https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz Resolving fastdl.mongodb.org (fastdl.mongodb.org)... 52.222.150.27, 52.222.150.229, 52.222.150.45, ... Connecting to fastdl.mongodb.org (fastdl.mongodb.org)|52.222.150.27|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 73214518 (70M) [application/x-gzip] Saving to: 'mongodb-linux-x86_64-4.0.5.tgz' mongodb-linux-x86_64-4.0.5.tgz 100%[================================================================================================================>] 69.82M 3.12MB/s in 23s 2019-01-03 16:50:22 (3.06 MB/s) - 'mongodb-linux-x86_64-4.0.5.tgz' saved [73214518/73214518]
- Wir extrahieren den Tarball:
# tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
Und erstellen Sie einen leichter zu merkenden Symlink namens
mongodb
das auf das entpackte Verzeichnis zeigt (die Versionsnummer kann abweichen):# ln -s mongodb-linux-x86_64-4.0.5 mongodb
- Wir erstellen den Benutzer, der den Dienst namens
mongod
ausführen wird :# useradd mongod
- Wir erstellen das Verzeichnis, in dem mongodb seine Daten speichert:
# mkdir -p /var/lib/mongo
- Wir setzen den
mongod
Benutzer als Eigentümer sowohl der Binärdateien als auch des Datenverzeichnisses:# chown -R mongod:mongod /opt/mongodb* # chown -R mongod: /var/lib/mongo
- Wir erstellen eine grundlegende Konfigurationsdatei für mongodb. Wir geben das erstellte Datenverzeichnis an und stellen die Datenbank so ein, dass sie nur auf localhost auf dem Standardport
27017
lauscht . Wir erstellen die Textdatei/etc/mongod.conf
mit folgendem Inhalt:storage: dbPath: "/var/lib/mongo" journal: enabled: true net: port: 27017 bindIp: "127.0.0.1"
Beachten Sie den
dbPath
Parameter, den wir auf das Verzeichnis gesetzt haben, das wir in einem früheren Schritt für die Datenspeicherung erstellt haben. - Für
systemd
um den Dienst verwalten zu können, erstellen wir die Textdatei/etc/systemd/system/mongod.service
mit minimaler Konfiguration:[Unit] Description=MongoDB After=syslog.target network.target [Service] Type=simple User=mongod Group=mongod ExecStart=/opt/mongodb/bin/mongod --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Beachten Sie, dass wir den
mongod
verwendet haben Benutzer und Gruppe, verwendeten unseren benutzerdefinierten Pfad fürmongod
binär und die von uns per Hand erstellte Konfigurationsdatei eingebunden. - Wir setzen
selinux
vorerst zu permissiv, da dies den Zugriff des Dienstes auf Ressourcen blockieren würde. Einstellen vonselinux
Richtlinien ist nicht Gegenstand dieses Tutorials.# setenforce 0
- Wir fragen
systemd
neu laden:systemctl daemon-reload
- Und prüfen Sie, ob der Dienst erkannt wird:
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: inactive (dead)
- Wir sind bereit, den Dienst zu starten:
# systemctl start mongod
- Und überprüfen Sie den Status. Wenn alles gut geht, sollten wir etwa Folgendes sehen:
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-01-03 17:01:48 CET; 4s ago Main PID: 2993 (mongod) Tasks: 23 (limit: 12544) Memory: 45.3M CGroup: /system.slice/mongod.service 2993 /opt/mongodb/bin/mongod --config /etc/mongod.conf
- Wir können unseren Service mit
mongo shell
testen , eine mit MongoDB gelieferte Befehlszeilenschnittstelle. Um darauf zugreifen zu können, müssen wir die extrahierten Binärdateien in$PATH
einfügen . Als faule Admins machen wir das nur einmal, auf Dauer. Wir fügen die folgende Zeile zu/root/.bash_profile
hinzu , vorher die letzte „export PATH“-Zeile:## mongodb PATH=$PATH:/opt/mongodb/bin
Und führen Sie das Skript aus:
# . ~/.bash_profile
- Wir starten die
mongo shell
:# mongo MongoDB shell version v4.0.5 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8999342b-e313-48e6-92c4-bf6b07cee0e4") } MongoDB server version: 4.0.5 Welcome to the MongoDB shell. For interactive help, type "help". [...] >
Es kann einige Startwarnungen geben, wie z. B. Einstellungen für riesige Seiten, aber wir werden diese in diesem Tutorial ignorieren.
- Auf der
mongo shell
, fragen wir nach allen vorhandenen Datenbanken:> db test
- Und wechseln Sie zum ausgelieferten
test
database:> use test switched to db test
- Wir fügen einige Testdaten (Schlüssel „x“ mit dem Wert „1“) in eine spontan erstellte Sammlung ein:
> db.exampleCollection.insertOne( { x: 1 } ); { "acknowledged" : true, "insertedId" : ObjectId("5c2e33040854f2d89326ae9c") } >
- Und schließlich fragen wir alle Daten in der neuen Sammlung ab und überprüfen, ob unser Schlüssel-Wert-Paar erfolgreich gespeichert wurde:
> db.getCollection("exampleCollection").find().pretty(); { "_id" : ObjectId("5c2e4c2fd129ceef6a6c6112"), "x" : 1 } >