Voraussetzungen
- Ein Vultr-Server mit Arch Linux auf dem neuesten Stand (siehe diesen Artikel )
- Sudo-Zugang:
- Befehlen, die als root ausgeführt werden müssen, wird ein Präfix vorangestellt
#
, und Befehle , die als normaler Benutzer ausgeführt werden können $
. Die empfohlene Methode zum Ausführen von Befehlen als Root besteht darin, jedem von ihnen als regulärer Benutzer ein Präfix voranzustellen sudo
.
Installieren Sie die MongoDB 4.0-Datenbank
MongoDB befindet sich im AUR (Arch User Repository). Es gibt 2 Sätze von Paketen, die Sie verwenden können. Siehe Pakete erstellen auf Arch Linux (einschließlich dem AUR) zusammenzustellen und um entweder Satz von Paketen zu installieren:
- Aus der Quelle kompilieren. Verwenden Sie AUR-Pakete
mongodb
und möglicherweise mongodb-tools
'. Beachten Sie, dass dies ungefähr 180 GB dauert und dies eine lange Zusammenstellung ist. Bei 4 Kernen dauert es ca. 7 Stunden. Dies ist die empfohlene Methode, da die Kompilierungsflags von Arch verwendet werden.
- Verwenden Sie die vorgefertigte Binärdatei von MongoDB. Verwenden Sie das AUR-Paket
mongodb-bin
und möglicherweise mongodb-tools-bin
. Dadurch wird die gesamte Kompilierungsphase übersprungen, eine vorgefertigte Binärdatei von mongodb.org heruntergeladen und mit den erforderlichen Konfigurationsdateien verpackt.
Starten Sie nach der Installation des Pakets MongoDB und starten Sie es nach jedem Start. Bei diesem ersten Start werden Dateien für das Journal und andere Daten vorab zugewiesen. Dies kann eine Weile dauern, bis die Datenbank fertig ist:
# systemctl enable --now mongodb
Testverbindung
Verbindung zu MongoDB herstellen:
$ mongo
Beenden:
> exit
Firewall-Überlegungen
Obwohl die Konfiguration einer Firewall immer eine gute Idee ist, 27017
überwacht MongoDB standardmäßig nur den Port auf localhost, sodass kein externer Datenverkehr empfangen wird.
Authentifizierung erforderlich
Standardmäßig erlaubt MongoDB jedem, eine Verbindung ohne Authentifizierung herzustellen, was offensichtlich ein Sicherheitsrisiko darstellt.
Erstellen Sie einen Root-Datenbankbenutzer:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
Bearbeiten /etc/mongodb.conf
und bei Verwendung des Pakets mongodb
hinzufügen:
security:
authorization: "enabled"
Wenn Sie das Paket verwenden, mongodb-bin
fügen Sie Folgendes hinzu:
auth = true
Starten Sie MongoDB neu:
# systemctl restart mongodb
Obwohl Sie ohne Authentifizierung immer noch eine Verbindung zu MongoDB herstellen können, wird ohne diese Funktion nichts ausgeführt:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
Stellen Sie als root eine Verbindung zu MongoDB her:
$ mongodb -u root
Alternativ können Sie eine Verbindung zu MongoDB herstellen und sich darin authentifizieren:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
Wichtig: Upgrades
Da MongoDB jetzt Teil der AUR ist, pacman
wird es nicht automatisch kompiliert und auf neue Versionen aktualisiert, wenn Sie Ihr gesamtes Arch-System aktualisieren. Sie müssen eine neue Version manuell neu kompilieren und das neue Paket installieren. Bevor Sie dies tun, ist es wichtig, die Versionshinweise von MongoDB zu lesen, um festzustellen, ob Sie zusätzliche Schritte ausführen müssen. Es ist eine gute Idee, Ihre Datenbank auch vor dem Upgrade zu sichern.
Unreines Herunterfahren
Wenn MongoDB beim nächsten Start nicht sauber heruntergefahren wird und nicht automatisch mithilfe seines Journals wiederhergestellt wird, müssen Sie möglicherweise Folgendes ausführen:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
Abhängig von der Größe Ihrer Datenbank und den verwendeten Indizes kann dieser Vorgang zwischen Sekunden und Stunden liegen.