Wie installiere ich MongoDB auf Debian 9?

Einführung

MongoDB ist eine kostenlose und quelloffene NoSQL-Dokumentendatenbank, die häufig in modernen Webanwendungen verwendet wird.

In diesem Lernprogramm installieren Sie MongoDB, verwalten den Dienst und aktivieren optional den Remotezugriff.

Voraussetzungen

Um diesem Tutorial zu folgen, müssen Sie einen Debian 9-Server einrichten, indem Sie diesem initial server setup tutorial folgen Ein sudo-fähiger Benutzer ohne Rootberechtigung und eine Firewall.

Schritt 1 - MongoDB installieren

Die offiziellen Paket-Repositories von Debian 9 enthalten eine veraltete Version von MongoDB, was bedeutet, dass wir stattdessen vom offiziellen MongoDB-Repository installieren.

Zuerst müssen wir den MongoDB-Signaturschlüssel mit + apt-key add + hinzufügen. Wir müssen sicherstellen, dass der Befehl "+ curl +" installiert ist, bevor Sie dies tun:

sudo apt install curl

Als nächstes laden wir den Schlüssel herunter und übergeben ihn an + apt-key add +:

curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -

Als nächstes erstellen wir eine Quellliste für das MongoDB-Repo, damit "+ apt +" weiß, wo es heruntergeladen werden kann. Öffnen Sie zuerst die Quelllistendatei in einem Texteditor:

sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

Dies öffnet eine neue leere Datei. Fügen Sie Folgendes ein:

/etc/apt/sources.list.d/mongodb-org-4.0.list

deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

Speichern und schließen Sie die Datei und aktualisieren Sie dann Ihren Paket-Cache:

sudo apt update

Installieren Sie das Paket + mongodb-org +, um den Server und einige unterstützende Tools zu installieren:

sudo apt-get install mongodb-org

Aktivieren und starten Sie abschließend den Dienst + mongod +, um Ihre MongoDB-Datenbank zum Laufen zu bringen:

sudo systemctl enable mongod
sudo systemctl start mongod

Wir haben jetzt die neueste stabile Version von MongoDB sowie hilfreiche Verwaltungstools für den MongoDB-Server installiert und gestartet.

Vergewissern Sie sich als Nächstes, dass der Server ausgeführt wird und ordnungsgemäß funktioniert.

Schritt 2 - Überprüfen des Dienstes und der Datenbank

Wir haben den MongoDB-Dienst im vorherigen Schritt gestartet. Vergewissern Sie sich nun, dass er gestartet wurde und die Datenbank funktioniert.

Überprüfen Sie zunächst den Status des Dienstes:

sudo systemctl status mongod

Sie sehen diese Ausgabe:

Output●  - MongoDB Database Server
  Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
  Active:  since Wed 2018-09-05 16:59:56 UTC; 3s ago
    Docs: https://docs.mongodb.org/manual
Main PID: 4321 (mongod)
   Tasks: 26
  CGroup: /system.slice/mongod.service
          └─4321 /usr/bin/mongod --config /etc/mongod.conf

Laut + systemd + ist der MongoDB-Server in Betrieb.

Dies können wir weiter überprüfen, indem wir tatsächlich eine Verbindung zum Datenbankserver herstellen und einen Diagnosebefehl ausführen

Führen Sie diesen Befehl aus:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Dadurch werden die aktuelle Datenbankversion, die Serveradresse und der Port sowie die Ausgabe des Statusbefehls ausgegeben:

OutputMongoDB shell version v4.0.2
connecting to:
MongoDB server version: 4.0.2
{
   "authInfo" : {
       "authenticatedUsers" : [ ],
       "authenticatedUserRoles" : [ ]
   },

}

Ein Wert von "+ 1 " für das Feld " ok +" in der Antwort zeigt an, dass der Server ordnungsgemäß funktioniert.

Als Nächstes schauen wir uns an, wie die Serverinstanz verwaltet wird.

Schritt 3 - Verwalten des MongoDB-Dienstes

MongoDB wird als systemd-Dienst installiert, was bedeutet, dass Sie es mit den Standardbefehlen "+ systemd +" zusammen mit allen anderen Systemdiensten in Ubuntu verwalten können.

Geben Sie Folgendes ein, um den Status des Dienstes zu überprüfen:

sudo systemctl status mongod

Sie können den Server jederzeit stoppen, indem Sie Folgendes eingeben:

sudo systemctl stop mongod

Geben Sie Folgendes ein, um den Server nach dem Stoppen zu starten:

sudo systemctl start mongod

Sie können den Server auch mit einem einzigen Befehl neu starten:

sudo systemctl restart mongod

Im vorherigen Schritt haben wir MongoDB aktiviert, um automatisch mit dem Server zu starten. Wenn Sie den automatischen Start deaktivieren möchten, geben Sie Folgendes ein:

sudo systemctl disable mongod

Es ist genauso einfach, es wieder zu aktivieren. Verwenden Sie dazu:

sudo systemctl enable mongod

Als nächstes passen wir die Firewall-Einstellungen für unsere MongoDB-Installation an.

Schritt 4 - Anpassen der Firewall (optional)

Angenommen, Sie haben die Anweisungen unter initial server setup tutorial befolgt, um die Firewall auf Ihrem Server zu aktivieren, wird der MongoDB-Server aktiviert aus dem Internet nicht erreichbar.

Wenn Sie den MongoDB-Server nur lokal mit Anwendungen verwenden möchten, die auf demselben Server ausgeführt werden, ist dies die empfohlene und sichere Einstellung. Wenn Sie jedoch aus dem Internet eine Verbindung zu Ihrem MongoDB-Server herstellen möchten, müssen Sie die eingehenden Verbindungen in + ufw + zulassen.

Um den Zugriff auf MongoDB über den Standardport "+ 27017 " von überall zuzulassen, können Sie " sudo ufw allow +" verwenden. Wenn Sie jedoch den Internetzugriff auf den MongoDB-Server in einer Standardinstallation aktivieren, hat jeder Benutzer uneingeschränkten Zugriff auf den Datenbankserver und seine Daten.

In den meisten Fällen sollte auf MongoDB nur von bestimmten vertrauenswürdigen Speicherorten aus zugegriffen werden, z. B. von einem anderen Server, auf dem sich eine Anwendung befindet. Um diese Aufgabe auszuführen, können Sie den Zugriff auf den Standardport von MongoDB zulassen, während Sie die IP-Adresse eines anderen Servers angeben, der explizit eine Verbindung herstellen darf:

sudo ufw allow from /32 to any port

Sie können die Änderung der Firewall-Einstellungen mit + ufw + überprüfen:

sudo ufw status

In der Ausgabe sollte der Verkehr zu Port "+ 27017 +" zulässig sein:

Ausgabe

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

Wenn Sie festgelegt haben, dass nur eine bestimmte IP-Adresse eine Verbindung zum MongoDB-Server herstellen darf, wird die IP-Adresse des zulässigen Speicherorts in der Ausgabe anstelle von "+ Überall +" aufgeführt.

Weitere Firewall-Einstellungen zum Einschränken des Zugriffs auf Dienste finden Sie unter UFW Essentials: Allgemeine Firewall-Regeln und -Befehle .

Obwohl der Port offen ist, überwacht MongoDB derzeit nur die lokale Adresse + 127.0.0.1 +. Fügen Sie der Datei "+ mongod.conf +" die öffentlich routbare IP-Adresse Ihres Servers hinzu, um Remoteverbindungen zuzulassen.

Öffnen Sie die MongoDB-Konfigurationsdatei in Ihrem Editor:

sudo nano /etc/mongod.conf

Fügen Sie die IP-Adresse Ihres Servers zum Wert "+ bindIP +" hinzu:

/etc/mongod.conf

. . .
# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1
. . .

Stellen Sie sicher, dass zwischen der vorhandenen und der von Ihnen hinzugefügten IP-Adresse ein Komma steht.

Speichern Sie die Datei, beenden Sie den Editor und starten Sie MongoDB neu:

sudo systemctl restart mongod

MongoDB wartet jetzt auf Remoteverbindungen, aber jeder kann darauf zugreifen. Folgen Sie Teil 2 von How to Install and Sichern Sie MongoDB unter Ubuntu 16.04, um einen Administrator hinzuzufügen und weitere Sperren vorzunehmen.

Fazit

Weitere Anleitungen zur Konfiguration und Verwendung von MongoDB finden Sie unter diese DigitalOcean-Community-Artikel. Die offizielle MongoDB Dokumentation ist auch eine großartige Quelle für die Möglichkeiten, die MongoDB bietet.