Forutsetninger
Installer MongoDB 4.0-databasen
Test tilkobling
Brannmurhensyn
Krev autentisering
Viktig: Oppgraderinger
Urent nedleggelse
Forutsetninger
- En Vultr-server som kjører oppdatert Arch Linux (se denne artikkelen )
- Sudo-tilgang:
- Kommandoer som kreves for å kjøres som root er prefikset av
#, og de som kan kjøres som en vanlig bruker av $. Den anbefalte måten å kjøre kommandoer som root er å, som en vanlig bruker, prefiksere hver av dem med sudo.
Installer MongoDB 4.0-databasen
MongoDB er i AUR (Arch User Repository). Det er 2 sett med pakker du kan bruke. Se Bygge pakker på Arch Linux (inkludert AUR) for å kompilere og installere begge settene med pakker:
- Kompiler fra kilden. Bruk AUR-pakker
mongodbog evt. mongodb-tools'. Merk at dette tar omtrent 180 GB, og dette er en lang samling. Med 4 kjerner tar det ca 7 timer. Dette er den anbefalte metoden, fordi den bruker Archs kompilasjonsflagg.
- Bruk MongoDBs forhåndsbygde binære. Bruk AUR-pakke
mongodb-binog ev mongodb-tools-bin. Dette hopper over hele kompileringsstadiet, laster ned en forhåndsbygd binærfil fra mongodb.org og pakker den med de nødvendige konfigurasjonsfilene.
Etter å ha installert pakken, start MongoDB, og få den til å starte etter hver oppstart. Under denne første starten vil den forhåndstildele filer for journalen og andre data, noe som kan ta en stund før databasen er ferdig med å komme opp:
# systemctl enable --now mongodb
Test tilkobling
Koble til MongoDB:
$ mongo
Å slutte:
> exit
Brannmurhensyn
Selv om det alltid er en god idé å konfigurere en brannmur, lytter MongoDB som standard kun på port 27017på localhost, så den mottar ingen ekstern trafikk.
Krev autentisering
Som standard lar MongoDB alle koble seg til den uten noen form for autentisering, noe som åpenbart er en sikkerhetsrisiko.
Opprett en rotdatabasebruker:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
Rediger /etc/mongodb.conf, og hvis du bruker pakke mongodblegg til:
security:
authorization: "enabled"
Hvis du bruker pakke, mongodb-binlegg til:
auth = true
Start MongoDB på nytt:
# systemctl restart mongodb
Nå, selv om du fortsatt kan koble til MongoDB uten autentisering, vil den ikke utføre noe uten den:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
Koble til MongoDB som root:
$ mongodb -u root
Alternativt kan du koble til MongoDB og deretter autentisere i den:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
Viktig: Oppgraderinger
Fordi MongoDB nå er en del av AUR, pacmanvil den ikke automatisk kompilere og oppgradere den til nye versjoner når du oppgraderer hele Arch-systemet. Du må manuelt re-kompilere en ny versjon og installere den nye pakken. Før du gjør det, er det viktig å se på MongoDBs utgivelsesnotater, for å se om det er noen ekstra skritt du må ta. Det er også lurt å sikkerhetskopiere databasen før du oppgraderer.
Urent nedleggelse
Hvis MongoDB ikke slår seg av rent, og ikke automatisk gjenoppretter ved hjelp av journalen ved neste oppstart, må du kanskje kjøre følgende:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
Avhengig av størrelsen på databasen og indeksene som brukes, kan denne prosessen variere fra sekunder til timer.