MongoDB ist eine NoSQL-Datenbank, die hohe Leistung, hohe Verfügbarkeit und automatische Skalierung bietet. NoSQL-Datenbank bedeutet, dass sie im Gegensatz zu MySQL oder PostgreSQL kein SQL (Structured Query Language) unterstützt, um die gespeicherten Daten abzurufen oder zu manipulieren.
MongoDB speichert keine Daten in Tabellen. Stattdessen speichert es Daten in einer „Dokument“-Struktur ähnlich JSON (in MongoDB BSON genannt). MongoDB wurde erstmals vor sechs Jahren im Jahr 2009 eingeführt und wird derzeit von MongoDB MongoDB Inc. entwickelt.
In diesem Tutorial zeigen wir Ihnen, wie Sie MongoDB 4.4 auf dem CentOS 8 Server installieren und konfigurieren. Wir werden MongoDB installieren, einige Systemeinstellungen bearbeiten, um einige Fehler in MongoDB zu beheben, den Administratorbenutzer für MongoDB erstellen und dann die MongoDB-Authentifizierung.
Voraussetzungen
- CentOS 8-Server
- Root-Rechte
- Grundlegende Linux/CentOS-Befehle verstehen
Was werden wir tun?
- MongoDB-Repository hinzufügen
- Installieren Sie MongoDB auf CentOS 8
- Einen MongoDB-Fehler beheben
- MongoDB-Admin-Benutzer erstellen
- MongoDB-Authentifizierung aktivieren
- Testen
Schritt 1 – MongoDB-Repository hinzufügen
Melden Sie sich zunächst mit Ihrem SSH-Benutzer und -Passwort bei Ihrem Server an und aktualisieren Sie dann alle Pakete mit dem folgenden Befehl auf die neueste Version.
ssh [email protected]
sudo dnf update
Gehen Sie nun in das Verzeichnis ‚/etc/yum.repos.d‘ und erstellen Sie eine neue Repository-Datei ‚mongodb-4.4.repo‘ mit dem vim-Editor.
cd /etc/yum.repos.d/
vim mongodb-4.4.repo
Fügen Sie das folgende MongoDB 4.4-Repository darin ein.
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Speichern und schließen.
Überprüfen Sie als Nächstes alle verfügbaren Repositories auf dem CentOS-System mit dem folgenden dnf-Befehl.
sudo dnf repolist
Unten sehen Sie das Ergebnis, das Sie erhalten.
Als Ergebnis wurde das MongoDB-Repository zum CentOS 8-System hinzugefügt.
Schritt 2 – MongoDB NoSQL-Datenbankserver installieren
Um die MongoDB NoSQL-Datenbank zu installieren, führen Sie den folgenden dnf-Befehl aus.
sudo dnf install -y mongodb-org
Sobald die gesamte Installation abgeschlossen ist, starten Sie den MongoDB-Dienst und fügen Sie ihn zum Systemstart hinzu.
systemctl start mongod
systemctl enable mongod
Der MongoDB-Dienst ist betriebsbereit, überprüfen Sie ihn mit dem folgenden Befehl.
ss -plnt
systemctl status mongod
Unten sehen Sie das Ergebnis, das Sie erhalten.
Wie zu sehen ist, läuft der MongoDB-Dienst auf dem Standard-TCP-Port „27017“.
Schritt 3 – MongoDB-Fehler beheben
Zu diesem Zeitpunkt ist der MongoDB-Dienst auf dem CentOS 8-System betriebsbereit. Und für diesen Schritt werden wir unsere MongoDB-Installation verbessern, indem wir einige Systemkonfigurationen ändern, um einige Fehler zu beheben.
- Deaktivieren Sie Transparent Huge Pages (THP) mit Tuned
Um die Installationsleistung von MongoDB zu erhöhen, müssen wir THP oder Transparent Huge Pages auf unserem System deaktivieren. Und für das CentOS-System können Sie THP über die optimierte Profilkonfiguration deaktivieren.
Erstellen Sie ein neues Verzeichnis „/etc/tuned/virtual-guest-no-thp“ für das benutzerdefinierte abgestimmte Profil mit dem Namen „virtual-guest-no-thp“.
sudo mkdir -p /etc/tuned/virtual-guest-no-thp
Erstellen Sie als Nächstes die Konfiguration „tuned.conf“ im Verzeichnis „/etc/tuned/virtual-guest-no-thp/“ mit dem vim-Editor.
vim /etc/tuned/virtual-guest-no-thp/tuned.conf
Fügen Sie die folgende Konfiguration ein.
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Speichern und schließen.
Aktivieren Sie nun das neue benutzerdefinierte abgestimmte Profil „virtual-guest-no-thp“ mit dem unten stehenden tuned-adm-Befehl.
sudo tuned-adm profile virtual-guest-no-thp
Um den THP-Status auf dem Linux-Status zu überprüfen, überprüfen Sie ihn mit dem folgenden Befehl.
cat /sys/kernel/mm/transparent_hugepage/enabled
Stellen Sie jetzt sicher, dass Sie '[nie]' erhalten Antwort wie unten.
Wie zu sehen ist, wurden die Transparent Huge Pages auf dem CentOS-System über das Tuned-Profil deaktiviert.
- Einrichten von UNIX Ulimit
Ulimits oder Benutzerlimits wird verwendet, um zu definieren, wie viel einer systemweiten Ressource ein Benutzer verwenden darf. Um die Leistung von MongoDB zu verbessern und zu erweitern, müssen Sie die ulimit-Einstellungen für den MongoDB-Dienst erhöhen.
Gehen Sie nun in das Verzeichnis ‚/etc/security/limits.d/‘ und erstellen Sie eine neue Konfiguration ‚monogd.conf‘ mit dem vim-Editor.
cd /etc/security/limits.d/
vim mongod.conf
Fügen Sie die folgende Konfiguration ein.
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
Speichern und schließen.
Führen Sie den folgenden Befehl aus, um die neue Konfiguration anzuwenden.
sysctl -p
Stellen Sie nun sicher, dass kein Fehler vorliegt und die Ulimit-Konfiguration für MongoDB abgeschlossen ist.
- Warnung MongoDB Cloud Monitoring deaktivieren (optional)
Diese Phase ist optional. Sie können Informationen über den MongoDB Cloud Monitoring-Dienst ignorieren, wenn Sie sich bei der MongoDB-Shell angemeldet haben.
Melden Sie sich zum Deaktivieren dieser Warnung bei der MongoDB-Shell mit dem Befehl „mongo“ unten an.
mongo
Führen Sie nun die folgende Abfrage aus.
db.disableFreeMonitoring()
Geben Sie 'exit ein ', um sich von der MongoDB-Shell abzumelden und jetzt Ihren Server neu zu starten.
sudo reboot
Aus diesem Grund ist die Warnung vor den MongoDB-Cloud-Überwachungsdiensten verschwunden.
Schritt 4 – Admin-Benutzer MongoDB erstellen
In diesem Schritt erstellen wir den Administratorbenutzer für MongoDB über die „Mongo“-Shell.
Melden Sie sich mit dem untenstehenden Befehl „mongo“ bei der MongoDB-Shell an.
mongo
Wechseln Sie nun in die 'admin'-Datenbank.
use admin
Erstellen Sie dann den neuen Benutzer „admin“ mit dem Passwort „hakasepasswordformongodbadmin“ mit der folgenden Abfrage.
db.createUser(
{
user: "admin",
pwd: "hakasepasswordformongodbadmin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Und der MongoDB-Benutzer wurde erstellt, überprüfen Sie alle Benutzer in der MongoDB mit der folgenden Abfrage.
show users
Unten sehen Sie das Ergebnis, das Sie erhalten.
Als Ergebnis wurde der Administratorbenutzer für MongoDB erstellt. Geben Sie „exit“ ein, um sich von der MongoDB-Shell abzumelden.
Schritt 5 – MongoDB-Authentifizierung aktivieren
Nach dem Erstellen des Admin-Benutzers aktivieren wir die MongoDB-Authentifizierung, um zu verhindern, dass ein anderer Benutzer ohne ausreichende Berechtigungen die Daten in der Datenbank sieht.
Um die MongoDB-Authentifizierung zu aktivieren, bearbeiten Sie die Konfiguration „/etc/mongod.conf“ mit dem vim-Editor.
vim /etc/mongod.conf
Entkommentieren Sie die Option „Sicherheit“ und fügen Sie die Konfiguration wie unten beschrieben hinzu.
security
authorization: "enabled"
Speichern und schließen.
Starten Sie als Nächstes den MongoDB-Dienst neu, um die neue Konfiguration zu übernehmen.
systemctl restart mongod
Stellen Sie sicher, dass kein Fehler vorliegt und die MongoDB-Authentifizierung aktiviert wurde.
Schritt 6 – Testen
Um unsere Installation und Konfiguration der MongoDB-Authentifizierung zu testen, können Sie dies über die MongoDB-Shell überprüfen.
Melden Sie sich mit dem folgenden Befehl bei der MongoDB-Shell an.
mongo
Wechseln Sie als Nächstes zur Datenbank „admin“ und zeigen Sie mithilfe der folgenden Abfragen alle Benutzer in MongoDB an.
use admin
show users
Unten sehen Sie das Ergebnis, das Sie erhalten.
Wie Sie sehen können, sind Sie nicht berechtigt, die Liste aller Benutzer in der Datenbank „admin“ anzuzeigen.
Authentifizieren Sie sich als Nächstes mit der folgenden Abfrage beim MongoDB-Server.
db.auth('admin', 'hakasepasswordformongodbadmin')
Stellen Sie nun sicher, dass Sie die Antwortnummer '1' erhalten , was bedeutet, dass die Authentifizierung erfolgreich war.
Als Nächstes können Sie alle verfügbaren Benutzer auf Ihrem MongoDB-Server anzeigen und überprüfen, indem Sie die folgende Abfrage verwenden.
show users
Und Sie erhalten den MongoDB-Admin, den wir gerade erstellt haben.
Als Ergebnis wurden die Installation und Konfiguration des MongoDB NoSQL-Datenbankservers auf dem CentOS 8-System erfolgreich abgeschlossen.