MongoDB ist ein plattformübergreifendes NoSQL-Datenbanksystem, das in C++ geschrieben ist. MongoDB unterscheidet sich von herkömmlichen tabellenbasierten SQL-Datenbanken wie MySQL und PostgreSQL und ist speziell für die Speicherung großer Datenmengen konzipiert. MongoDB verwendet JSON-ähnliche Dokumente mit dynamischen Schemas und erfordert kein vordefiniertes Schema, bevor Sie Daten zu einer Datenbank hinzufügen. MongoDB ist kostenlos, Open Source und verfügt über eine Vielzahl von Funktionen, darunter Speicherung, Datenreplikation, Ad-hoc-Abfragen, Lastausgleich und vieles mehr.
In diesem Tutorial erklären wir, wie MongoDB unter CentOS 8 installiert und gesichert wird.
Voraussetzungen
- Ein frischer CentOS 8 VPS auf der Atlantic.net Cloud Platform.
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – Fügen Sie das MongoDB-Repository hinzu
Sie können es mit dem folgenden Befehl erstellen:
nano /etc/yum.repos.d/mongodb-org.repo
Fügen Sie die folgenden Zeilen hinzu:
[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Als Nächstes können Sie mit der Installation von MongoDB in Ihrem System fortfahren.
Schritt 3 – MongoDB installieren
Jetzt können Sie die MongoDB installieren, indem Sie einfach den folgenden Befehl ausführen:
dnf install mongodb-org -y
Starten Sie nach Abschluss der Installation den MongoDB-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start mongod systemctl enable mongod
Sie können jetzt den Status des MongoDB-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status mongod
Sie sollten die folgende Ausgabe sehen:
● mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2020-04-10 10:58:18 EDT; 7s ago Docs: https://docs.mongodb.org/manual Process: 2904 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS) Process: 2902 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 2899 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 2897 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS) Main PID: 2906 (mongod) Memory: 77.0M CGroup: /system.slice/mongod.service └─2906 /usr/bin/mongod -f /etc/mongod.conf Apr 10 10:58:17 centos8 systemd[1]: Starting MongoDB Database Server... Apr 10 10:58:17 centos8 mongod[2904]: about to fork child process, waiting until server is ready for connections. Apr 10 10:58:17 centos8 mongod[2904]: forked process: 2906 Apr 10 10:58:18 centos8 mongod[2904]: child process started successfully, parent exiting Apr 10 10:58:18 centos8 systemd[1]: Started MongoDB Database Server.
Jetzt läuft MongoDB und lauscht auf Port 27017. Sie können dies mit dem folgenden Befehl überprüfen:
netstat -pnltu | grep 27017
Sie sollten die folgende Ausgabe erhalten:
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2906/mongod
Sie können auch mit dem folgenden Befehl auf die MongoDB-Shell zugreifen:
mongo
Sie sollten die folgende Ausgabe erhalten:
MongoDB shell version v4.2.5 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("b0f7656f-f939-4f50-87d2-01cbeca0849a") } MongoDB server version: 4.2.5 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2020-04-10T10:58:18.521-0400 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2020-04-10T10:58:18.522-0400 I CONTROL [initandlisten] --- Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring() ---
Sie können die MongoDB-Shell mit dem folgenden Befehl verlassen:
>exit
Schritt 4 – MongoDB-Authentifizierung aktivieren
nano /etc/mongod.conf
Fügen Sie am Ende der Datei die folgende Zeile hinzu:
security: authorization: enabled
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den MongoDB-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart mongod
Schritt 5 – Erstellen Sie einen MongoDB-Admin-Benutzer
Als Nächstes müssen Sie einen Administrator mit allen Rechten zum Ausführen von Verwaltungsaufgaben erstellen.
Greifen Sie zunächst mit dem folgenden Befehl auf die MongoDB-Shell zu:
mongo
Sie sollten die folgende Ausgabe erhalten:
MongoDB shell version v4.2.5 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("09e0e028-cd26-4f9d-9270-52b938925f99") } MongoDB server version: 4.2.5
Als nächstes ändern Sie die Datenbank mit dem folgenden Befehl auf admin:
> use admin
Erstellen Sie als Nächstes mit dem folgenden Befehl einen MongoDB-Administratorbenutzer namens myadmin:
> db.createUser( { user: "myadmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Nachdem der Benutzer erstellt wurde, sollten Sie die folgende Ausgabe erhalten:
Successfully added user: { "user" : "myadmin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
Verlassen Sie als Nächstes die MongoDB-Shell mit dem folgenden Befehl:
>exit
Schritt 6 – Überprüfen Sie die MongoDB-Authentifizierung
An diesem Punkt ist MongoDB mit Authentifizierung konfiguriert. Jetzt müssen Sie einen Benutzernamen und ein Passwort angeben, bevor Sie mit MongoDB interagieren können.
Verbinden Sie als Nächstes die MongoDB ohne Authentifizierung:
mongo
Sie sollten die folgende Ausgabe erhalten:
MongoDB shell version v4.2.5 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("fecf1846-13fd-4959-91da-5cf323781e13") } MongoDB server version: 4.2.5
Führen Sie nun den folgenden Befehl aus, um MongoDB-Benutzer aufzulisten:
> show users
Sie sollten die folgende Fehlermeldung erhalten:
2020-04-10T11:08:04.598-0400 E QUERY [js] uncaught exception: Error: command usersInfo requires authentication : [email protected]/mongo/shell/utils.js:25:13 [email protected]/mongo/shell/db.js:1638:15 [email protected]/mongo/shell/utils.js:883:9 [email protected]/mongo/shell/utils.js:790:15 @(shellhelp2):1:1
Dies zeigt, dass Sie die Benutzer nicht ohne Authentifizierung auflisten können.
Beenden Sie nun MongoDB mit dem folgenden Befehl:
>exit
Schritt 7 – Greifen Sie mit Administrator auf MongoDB zu
Verbinden wir uns nun mit dem administrativen Benutzer mit der MongoDB:
mongo -u myadmin -p --authenticationDatabase admin
Sie werden aufgefordert, Ihr Admin-Passwort wie unten gezeigt einzugeben:
MongoDB shell version v4.2.5 Enter password:
Geben Sie Ihr Admin-Passwort ein und drücken Sie Enter . Sie sollten die folgende Ausgabe erhalten:
connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("a39f723c-f1b5-4c93-9e67-ff82379dfb62") } MongoDB server version: 4.2.5
Als nächstes ändern Sie die Datenbank auf admin und listen die Benutzer mit dem folgenden Befehl auf:
> use admin > show users
Sie sollten die folgende Ausgabe erhalten:
{ "_id" : "admin.myadmin", "userId" : UUID("bcd920c1-63fd-4b82-a8a6-eb6515d51a34"), "user" : "myadmin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
Verlassen Sie nun die MongoDB-Shell mit der folgenden Ausgabe:
>exit
Schlussfolgerung
In der obigen Anleitung haben wir gelernt, wie man MongoDB unter CentOS 8 installiert. Wir haben auch gezeigt, wie man die MongoDB-Authentifizierung aktiviert und einen administrativen Benutzer erstellt. Ihre MongoDB auf Ihrem Atlantic.Net-VPS ist jetzt mit Benutzername und Passwort gesichert – wenn Sie kein VPS von Atlantic.Net haben, beginnen Sie noch heute mit dem VPS-Hosting, um MongoDB zu installieren!