MongoDB ist eine kostenlose Open-Source-Dokumentendatenbank. Sie gehört zu einer Familie von Datenbanken namens NoSQL, die sich von den traditionellen tabellenbasierten SQL-Datenbanken wie MySQL und PostgreSQL unterscheidet.
In MongoDB werden Daten in flexiblen, JSON-ähnlichen Dokumenten gespeichert, in denen die Felder von Dokument zu Dokument variieren können. Es erfordert kein vordefiniertes Schema und die Datenstruktur kann im Laufe der Zeit geändert werden.
In diesem Tutorial erklären wir, wie Sie die neueste Version der MongoDB Community Edition auf Debian 10 Buster installieren und konfigurieren.
Installieren von MongoDB #
MongoDB ist nicht in den standardmäßigen Debian-Buster-Repositories verfügbar. Wir aktivieren das offizielle MongoDB-Repository und installieren die Pakete.
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von MongoDB Version 4.2. Bevor Sie mit der Installation beginnen, gehen Sie zur Seite Install on Debian der MongoDB-Dokumentation und prüfen Sie, ob eine neue Version verfügbar ist.
Führen Sie die folgenden Schritte als Root oder Benutzer mit sudo-Berechtigungen aus, um MongoDB auf einem Debian-System zu installieren:
-
Installieren Sie die Pakete, die zum Hinzufügen eines neuen Repositorys erforderlich sind:
sudo apt install dirmngr gnupg apt-transport-https software-properties-common ca-certificates curl
-
Fügen Sie Ihrem System den MongoDB-GPG-Schlüssel hinzu:
curl -fsSL https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
-
Aktivieren Sie das MongoDB-Repository:
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main'
Pakete mit älteren Versionen von MongoDB sind für Debian 10 nicht verfügbar.
-
Aktualisieren Sie die Paketliste und installieren Sie
mongodb-org
Metapaket:sudo apt update
sudo apt install mongodb-org
Die folgenden Pakete werden als Teil von
mongodb-org
auf dem System installiert Paket:mongodb-org-server
- Dermongod
Daemon und entsprechende Init-Skripte und Konfigurationen.mongodb-org-mongos
- Diemongos
Dämon.mongodb-org-shell
- Die Mongo-Shell ist eine interaktive JavaScript-Schnittstelle zu MongoDB. Es wird verwendet, um administrative Aufgaben über die Befehlszeile auszuführen.mongodb-org-tools
- Enthält mehrere MongoDB-Tools zum Importieren und Exportieren von Daten, Statistiken sowie andere Dienstprogramme.
-
Starten Sie den MongoDB-Dienst und aktivieren Sie ihn für den Start beim Booten:
sudo systemctl enable mongod --now
-
Um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde, stellen Sie mit
mongo
eine Verbindung zum MongoDB-Datenbankserver her Tool und drucken Sie den Verbindungsstatus:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Die Ausgabe sieht folgendermaßen aus:
MongoDB shell version v4.2.1 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("09f11c53-605f-44ad-abec-ec5801bb6b06") } MongoDB server version: 4.2.1 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Ein Wert von
1
für dasok
Feld zeigt Erfolg an.
Konfiguriere MongoDB #
Die MongoDB-Konfigurationsdatei heißt mongod.conf
und befindet sich im /etc
Verzeichnis. Die Datei ist im YAML-Format.
Die Standardkonfigurationseinstellungen sind für die meisten Benutzer ausreichend. Für Produktionsumgebungen wird jedoch empfohlen, den Sicherheitsabschnitt zu entkommentieren und die Autorisierung zu aktivieren, wie unten gezeigt:
/etc/mongod.confsecurity:
authorization: enabled
Die authorization
Option aktiviert die rollenbasierte Zugriffskontrolle (RBAC), die den Benutzerzugriff auf Datenbankressourcen und -vorgänge regelt. Wenn diese Option deaktiviert ist, kann jeder Benutzer auf alle Datenbanken zugreifen und beliebige Aktionen ausführen.
Starten Sie nach dem Bearbeiten der Konfigurationsdatei den Mongod-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart mongod
Weitere Informationen zu den in MongoDB 4.2 verfügbaren Konfigurationsoptionen finden Sie auf der Dokumentationsseite Konfigurationsdateioptionen.
Erstellen des administrativen MongoDB-Benutzers Nr.
Wenn Sie die MongoDB-Authentifizierung aktiviert haben, müssen Sie einen administrativen Benutzer erstellen, der auf die MongoDB-Instanz zugreifen und diese verwalten kann. Greifen Sie dazu auf die Mongo-Shell zu mit:
mongo
Geben Sie in der MongoDB-Shell den folgenden Befehl ein, um eine Verbindung zum admin
herzustellen Datenbank:
use admin
switched to db admin
Geben Sie den folgenden Befehl aus, um einen neuen Benutzer namens mongoAdmin
zu erstellen mit der userAdminAnyDatabase
Rolle:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Sie können den administrativen MongoDB-Benutzer nach Belieben benennen. Verlassen Sie die Mongo-Shell mit:
quit()
Um die Änderungen zu testen, greifen Sie mit dem Administratorbenutzer, den Sie zuvor erstellt haben, auf die Mongo-Shell zu:
mongo -u mongoAdmin -p --authenticationDatabase admin
Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden. Sobald Sie sich in der MongoDB-Shell befinden, verbinden Sie sich mit admin
Datenbank:
use admin
switched to db admin
Drucken Sie nun die Benutzer mit:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("cdc81e0f-db58-4ec3-a6b8-829ad0c31f5c"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}