Wie man MongoDB auf CentOS 7 installiert und konfiguriert

MongoDB ist eine NoSQL-Datenbank, die eine 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) zum Abrufen oder Manipulieren der gespeicherten Daten unterstützt. MongoDB speichert keine Daten in Tabellen, sondern Daten in einer „Dokument“-Struktur ähnlich JSON (in MongoDB BSON genannt). MongoDB wurde erstmals 2009, vor sechs Jahren, eingeführt. Derzeit entwickelt von der Firma MongoDB MongoDB MongoDB Inc.

In diesem Tutorial führe ich Sie durch die Installation und Konfiguration von MongoDB 3.2 (stable) auf einem CentOS 7-Server. Wir werden den Administratorbenutzer für MongoDB hinzufügen und konfigurieren und die Authentifizierung für MongoDB-Dienste konfigurieren.

Voraussetzungen

  • CentOS 7
  • Root-Rechte

Was wir in diesem Tutorial tun werden:

  1. Fügen Sie das MongoDB-Repository hinzu.
  2. Installation von MongoDB.
  3. Beheben Sie einige MongoDB-Fehler.
  4. Erstellen Sie einen Administrator-Benutzer.
  5. Aktivieren Sie die MongoDB-Authentifizierung und -Tests.

Schritt 1 – Hinzufügen des MongoDB Repository in CentOS

Verbinden Sie sich mit Ihrem CentOS 7-Server über das ssh root-Konto:

ssh root@192.168.1.100

Wir müssen in das Verzeichnis’yum.repos.d‘ gehen, um das neue CentOS-Repository hinzuzufügen. Gehen Sie zu diesem Verzeichnis und erstellen Sie eine neue Repository-Datei ‚mongodb-org-3.2.repo‘ mit vim:

cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo

Fügen Sie die MongoDB-Repository-Konfiguration ein, die unten gezeigt wird:

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Speichern Sie die Datei und verlassen Sie den Editor.

Schritt 2 – Installation von MongoDB

Wir haben das MongoDB-Repository hinzugefügt, überprüfen Sie nun die Repository-Liste auf dem Server, um sicherzustellen, dass das MongoDB-Repository in der Liste verfügbar ist.

Führen Sie dazu den folgenden Befehl als root aus:

yum repolist

Du solltest die Ergebnisse unten sehen. Das MongoDB-Repository ist auf der Liste.

Das MongoDB-Repository ist auf CentOS 7 installiert.

Als nächstes installieren Sie MongoDB mit dem Befehl yum.

yum -y install mongodb-org

Wenn die Installation abgeschlossen ist, starten Sie MongoDB mit diesem systemctl-Befehl:

systemctl start mongod

Überprüfen Sie, ob MongoDB läuft, indem Sie überprüfen, ob der Port’27017′ offen ist.

netstat -plntu

Und stellen Sie sicher, dass der mongodb-Dienst aktiv ist.

systemctl status mongod

MongoDB auf CentOS 7 starten

Schritt 3 – Beheben eines MongoDB-Fehlers

MongoDB ist installiert. Jetzt können wir auf die mongodb-Shell zugreifen, indem wir den folgenden Befehl verwenden:

mongo

Du wirst wahrscheinlich diesen Fehler bei der ulimit-Konfiguration auf dem Server sehen.

** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000...

MongoDB Ulimit Error

Ulimits oder User Limits definieren, wie viel von einer systemweiten Ressource ein Benutzer nutzen darf.

Um dieses Problem zu lösen, müssen wir die ulimit-Konfiguration des User-Mongods erhöhen.

Auf dem CentOS 7 Server läuft die MongoDB-Datenbank unter dem Benutzer „mongod“. Gehen Sie in das Verzeichnis „security“ und bearbeiten Sie die Konfigurationsdatei „limits.conf“.

cd /etc/security/
vim limits.conf

Ich werde die Grenzen des mongod-Benutzers auf 64000′ – Anzahl der Prozesse oder nproc und die Anzahl der offenen Dateien oder nofile auf 64000 erhöhen.

Fügen Sie die neue Konfiguration unten an das Ende der Datei ein:

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Speichern Sie die Datei limits.conf.

Führen Sie den folgenden Befehl sysctl aus, um die geänderten Grenzwerte auf das System anzuwenden:

sysctl -p

Starten Sie dann den MongoDB-Dienst neu und versuchen Sie erneut, auf die Mongo-Shell zuzugreifen, der Fehler ist nun behoben.

systemctl restart mongod
mongo

Grenzen für MongoDB setzen

Schritt 4 – Erstellen eines MongoDB Administrator-Benutzers

In diesem Schritt erstellen wir einen neuen Benutzer „admin“ für MongoDB mit der Rolle „UserAdminAnyDatabase“ aus der Mongo-Shell.

Öffne die Mongodb-Schale:

mongo

Ich werde einen neuen Benutzeradministrator namens’admin‘ mit dem Passwort’admin123′ anlegen. Bitte verwenden Sie ein sicheres Passwort auf Ihrem Server. Dann konfigurieren wir die Rolle des Benutzers auf’UserAdminAnyDatabase‘.

Wechseln Sie in die Datenbank ‚admin‘.

use admin

Geben Sie die folgende MongoDB-Abfrage ein, um den neuen Administratorbenutzer anzulegen:

db.createUser(
  {
    user: "admin",
    pwd: "admin123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Stellen Sie anschließend sicher, dass der Benutzer mit der folgenden MongoDB-Abfrage angelegt wurde.

show users

MongoDB-Benutzer anlegen

Der MongoDB-Administratorbenutzer wurde angelegt.

Schritt 5 – Benutzerauthentifizierung in MongoDB aktivieren

In diesem Schritt aktivieren wir die Authentifizierung für Benutzer, um zu verhindern, dass ein anderer Benutzer ohne ausreichende Berechtigungen die Daten in der Datenbank sehen kann.

Auf unserem CentOS 7 Server läuft MongoDB unter systemd mit einem Initskript im Verzeichnis’/etc/init.d/‘. Wir werden dieses Skript bearbeiten, um den mongodb-Dienst zu zwingen, mit der Option ‚–auth‘ zu laufen.

Gehen Sie in das Verzeichnis’/etc/init.d/‘ und bearbeiten Sie die Datei „mongod“:

cd /etc/init.d/
vim mongod

In Zeile 15 finden Sie die Variable „OPTION“, dort werden wir die Option „mongod“ hinzufügen.

OPTIONS=" --auth -f $CONFIGFILE"

Speichern Sie die Datei.

Laden Sie den Systemdienst neu und starten Sie MongoDB neu.

systemctl daemon-reload
systemctl restart mongod

Als nächstes müssen wir die Konfiguration testen, indem wir uns in die Mongoshell einloggen und in die Admin-Datenbank wechseln, dann versuchen, die Admin-Benutzer zu sehen.

mongo

use admin
show users

Sie sehen einen Fehler bei der unbefugten Ausführung des Befehls im Datenbankadministrator. Nun müssen wir den Befehl’db.auth()‘ für die Authentifizierung verwenden.

db.auth('admin', 'admin123')

Jetzt sehen Sie die Benutzer mit ihren Rollen und den Privilegien.

Konfigurieren der MongoDB-Authentifizierung

MongoDB 3.2 wurde auf einem CentOS 7 Server installiert und konfiguriert.

Links

Das könnte Dich auch interessieren …