Vereisten
- Een Vultr-server met up-to-date Arch Linux (zie dit artikel )
- Sudo toegang:
- Commando's die als root moeten worden uitgevoerd, worden voorafgegaan door
#, en commando's die als gewone gebruiker kunnen worden uitgevoerd $. De aanbevolen manier om opdrachten als root uit te voeren, is om ze als gewone gebruiker vooraf te laten prefixen sudo.
Installeer MongoDB 4.0 Database
MongoDB bevindt zich in de AUR (Arch User Repository). Er zijn 2 sets pakketten die u kunt gebruiken. Zie Pakketten bouwen op Arch Linux (inclusief de AUR) om een van beide pakketten te compileren en te installeren:
- Compileer vanaf de bron. Gebruik AUR-pakketten
mongodben mogelijk mongodb-tools'. Merk op dat dit ongeveer 180 GB kost, en dit is een lange compilatie. Met 4 cores duurt het ongeveer 7 uur. Dit is de aanbevolen methode, omdat deze de compilatievlaggen van Arch gebruikt.
- Gebruik het vooraf gebouwde binaire bestand van MongoDB. Gebruik AUR-pakket
mongodb-binen mogelijk mongodb-tools-bin. Dit slaat de hele compilatiefase over, downloadt een vooraf gebouwd binair bestand van mongodb.org en verpakt het met de nodige configuratiebestanden.
Start MongoDB na het installeren van het pakket en laat het starten na elke keer opstarten. Tijdens deze eerste start zal het vooraf bestanden toewijzen voor zijn dagboek en andere gegevens, wat enige tijd kan duren voordat de database klaar is:
# systemctl enable --now mongodb
Test verbinding
Maak verbinding met MongoDB:
$ mongo
Stoppen:
> exit
Firewall-overweging
Hoewel het configureren van een firewall altijd een goed idee is, luistert MongoDB standaard alleen op de poort 27017op localhost, zodat het geen extern verkeer ontvangt.
Verificatie vereisen
Standaard staat MongoDB iedereen toe om er verbinding mee te maken zonder enige vorm van authenticatie, wat uiteraard een veiligheidsrisico is.
Maak een rootdatabase-gebruiker:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
Bewerken /etc/mongodb.conf, en als u pakket gebruikt, mongodbvoegt u toe:
security:
authorization: "enabled"
Bij gebruik van pakket mongodb-bintoevoegen:
auth = true
Start MongoDB opnieuw:
# systemctl restart mongodb
Hoewel u nog steeds zonder authenticatie verbinding kunt maken met MongoDB, zal het niets uitvoeren zonder:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
Maak verbinding met MongoDB als root:
$ mongodb -u root
U kunt ook verbinding maken met MongoDB en vervolgens verifiëren:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
Belangrijk: upgrades
Omdat MongoDB nu deel uitmaakt van de AUR, pacmanzal het niet automatisch compileren en upgraden naar nieuwe versies, wanneer u uw hele Arch-systeem upgradet. U moet handmatig een nieuwe versie opnieuw compileren en het nieuwe pakket installeren. Voordat u dit doet, is het belangrijk om naar de release-opmerkingen van MongoDB te kijken om te zien of er extra stappen zijn die u moet nemen. Het is een goed idee om ook een back-up van uw database te maken voordat u gaat upgraden.
Onrein afsluiten
Als MongoDB niet correct wordt afgesloten en niet automatisch herstelt met behulp van het logboek bij de volgende keer opstarten, moet u mogelijk het volgende uitvoeren:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
Afhankelijk van de grootte van uw database en de gebruikte indexen, kan dit proces variëren van seconden tot uren.