Προαπαιτούμενα
Εγκαταστήστε τη βάση δεδομένων MongoDB 4.0
ΔΟΚΙΜΗ ΣΥΝΔΕΣΗΣ
Εξέταση τείχους προστασίας
Απαιτείται έλεγχος ταυτότητας
Σημαντικό: Αναβαθμίσεις
Unclean Shutdown
Προαπαιτούμενα
- Ένας διακομιστής Vultr με ενημερωμένο Arch Linux (δείτε αυτό το άρθρο )
- Πρόσβαση Sudo:
- Οι εντολές που απαιτούνται για εκτέλεση ως ρίζα έχουν το πρόθεμα από
#, και εκείνες που μπορούν να εκτελεστούν ως κανονικός χρήστης με $. Ο συνιστώμενος τρόπος για να εκτελέσετε εντολές ως root είναι, ως κανονικός χρήστης, να προσθέσετε πρόθεμα σε καθεμία από αυτές με sudo.
Εγκαταστήστε τη βάση δεδομένων MongoDB 4.0
Το MongoDB βρίσκεται στο AUR (Arch User Repository). Υπάρχουν 2 σετ πακέτων που μπορείτε να χρησιμοποιήσετε. Ανατρέξτε στην ενότητα Δημιουργία πακέτων στο Arch Linux (συμπεριλαμβανομένου του AUR) για να μεταγλωττίσετε και να εγκαταστήσετε οποιοδήποτε σύνολο πακέτων:
- Μεταγλώττιση από την πηγή. Χρησιμοποιήστε πακέτα AUR
mongodbκαι πιθανώς mongodb-tools'. Σημειώστε ότι αυτό διαρκεί περίπου 180 GB, και αυτή είναι μια μακρά συλλογή. Με 4 πυρήνες, χρειάζονται περίπου 7 ώρες. Αυτή είναι η προτεινόμενη μέθοδος, επειδή χρησιμοποιεί τις σημαίες συλλογής του Arch.
- Χρησιμοποιήστε το προκατασκευασμένο δυαδικό αρχείο MongoDB. Χρησιμοποιήστε το πακέτο AUR
mongodb-binκαι πιθανώς mongodb-tools-bin. Αυτό παρακάμπτει ολόκληρο το στάδιο της μεταγλώττισης, κατεβάζοντας ένα προκατασκευασμένο δυαδικό αρχείο από το mongodb.org και συσκευάζοντάς το με τα απαραίτητα αρχεία διαμόρφωσης.
Αφού εγκαταστήσετε το πακέτο, ξεκινήστε το MongoDB και ξεκινήστε το μετά από κάθε εκκίνηση. Κατά τη διάρκεια αυτής της πρώτης εκκίνησης, θα εκχωρήσει εκ των προτέρων αρχεία για το ημερολόγιο του και άλλα δεδομένα, τα οποία μπορεί να διαρκέσουν λίγο πριν ολοκληρωθεί η εμφάνιση της βάσης δεδομένων:
# systemctl enable --now mongodb
ΔΟΚΙΜΗ ΣΥΝΔΕΣΗΣ
Σύνδεση στο MongoDB:
$ mongo
Για να σταματήσετε:
> exit
Εξέταση τείχους προστασίας
Αν και η διαμόρφωση ενός τείχους προστασίας είναι πάντα καλή ιδέα, από προεπιλογή, το MongoDB ακούει μόνο στη θύρα 27017του localhost, επομένως δεν θα λαμβάνει εξωτερική κίνηση.
Απαιτείται έλεγχος ταυτότητας
Από προεπιλογή, το MongoDB επιτρέπει σε οποιονδήποτε να συνδεθεί σε αυτό χωρίς κανένα είδος ελέγχου ταυτότητας, κάτι που είναι προφανώς κίνδυνος ασφάλειας.
Δημιουργήστε έναν χρήστη root βάσης δεδομένων:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
Επεξεργαστείτε /etc/mongodb.confκαι αν χρησιμοποιείτε πακέτο mongodbπροσθέστε:
security:
authorization: "enabled"
Εάν χρησιμοποιείτε πακέτο mongodb-binπροσθέστε:
auth = true
Επανεκκινήστε το MongoDB:
# systemctl restart mongodb
Τώρα, αν και μπορείτε ακόμα να συνδεθείτε στο MongoDB χωρίς έλεγχο ταυτότητας, δεν θα εκτελέσει τίποτα χωρίς αυτό:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
Συνδεθείτε στο MongoDB ως root:
$ mongodb -u root
Εναλλακτικά, συνδεθείτε στο MongoDB και, στη συνέχεια, πραγματοποιήστε έλεγχο ταυτότητας σε αυτό:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
Σημαντικό: Αναβαθμίσεις
Επειδή το MongoDB είναι πλέον μέρος του AUR, pacmanδεν θα το μεταγλωττίσει και θα το αναβαθμίσει αυτόματα σε νέες εκδόσεις, όταν αναβαθμίζετε ολόκληρο το σύστημα Arch. Θα χρειαστεί να μεταγλωττίσετε ξανά μια νέα έκδοση και να εγκαταστήσετε το νέο πακέτο. Πριν το κάνετε αυτό, είναι σημαντικό να δείτε τις σημειώσεις έκδοσης του MongoDB, για να δείτε εάν υπάρχουν επιπλέον βήματα που πρέπει να κάνετε. Είναι επίσης καλή ιδέα να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων σας πριν την αναβάθμιση.
Unclean Shutdown
Εάν το MongoDB δεν τερματιστεί καθαρά και δεν ανακτηθεί αυτόματα χρησιμοποιώντας το ημερολόγιο του στην επόμενη εκκίνηση, ίσως χρειαστεί να εκτελέσετε τα εξής:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
Ανάλογα με το μέγεθος της βάσης δεδομένων σας και τα ευρετήρια που χρησιμοποιούνται, αυτή η διαδικασία μπορεί να κυμαίνεται από δευτερόλεπτα έως ώρες.