Σε αυτό το blog έχουμε μιλήσει για ορισμένα συστήματα βάσεων δεδομένων, μεταξύ των οποίων τα πιο δημοφιλή είναι τα MariaDB και MySQL, καθώς είναι τα συστήματα που συνήθως περιλαμβάνονται στο Xampp ή στο Lampp. Αυτή τη φορά πρόκειται να μιλήσουμε ένα άλλο σύστημα που είναι MongoDB.
Το MongoDB είναι ένα σύστημα βάσεων δεδομένων NoSQL προσανατολισμένο σε έγγραφο ανοιχτού κώδικα, Αυτό είναι ένα σύγχρονο σύστημα διαχείρισης βάσεων δεδομένων εγγράφων που έχει σχεδιαστεί για επιμονή δεδομένων υψηλής απόδοσης, υψηλή διαθεσιμότητα, καθώς και αυτόματη κλιμάκωση, με βάση την τεχνολογία της τεχνικής NoSQL.
Αντί να αποθηκεύει δεδομένα σε πίνακες όπως γίνεται σε σχεσιακές βάσεις δεδομένων, το MongoDB αποθηκεύει δομές δεδομένων σε ένα έγγραφο, η οποία είναι μια δομή δεδομένων που αποτελείται από ζεύγη πεδίων και τιμών (τα έγγραφα MongoDB είναι συγκρίσιμα με τα αντικείμενα JSON).
Επειδή παρέχει υψηλή απόδοση και εξαιρετικά χαρακτηριστικά επεκτασιμότητας, χρησιμοποιείται για τη δημιουργία σύγχρονων εφαρμογών που απαιτούν ισχυρές, κρίσιμες για την αποστολή και εξαιρετικά διαθέσιμες βάσεις δεδομένων.
Εγκατάσταση MongoDB στο Ubuntu
Για να εγκαταστήσετε αυτό το σύστημα βάσης δεδομένων στο σύστημά μας, Πρέπει να ανοίξουμε μόνο ένα τερματικό και να εκτελέσουμε την ακόλουθη εντολή σε αυτό:
sudo apt install mongodb
Η εγκατάσταση ολοκληρώθηκε, Η υπηρεσία MongoDB θα ξεκινήσει αυτόματα μέσω του systemd και η διαδικασία θα εκτελεστεί στη θύρα 27017. Μπορείτε να ελέγξετε την κατάστασή της χρησιμοποιώντας την εντολή:
sudo systemctl status mongodb
Εάν όχι, μπορούμε να ξεκινήσουμε με αυτήν την εντολή:
sudo systemctl start mongodb
Ενεργοποίηση απομακρυσμένων συνδέσεων στο MongoDB
Το σύστημα βάσης δεδομένων MongoDB χρησιμοποιεί από προεπιλογή τη θύρα 27017 την οποία πρέπει να ανοίξουμε Για να αποδεχτούμε απομακρυσμένες συνδέσεις, το ενεργοποιούμε μόνο με την ακόλουθη εντολή.
sudo ufw allow 27017
Από προεπιλογή, η θύρα 27017 είναι προσβάσιμη μόνο από την τοπική διεύθυνση 127.0.0.1. Για να επιτρέψετε απομακρυσμένες συνδέσεις στο MongoDB, είναι απαραίτητο να προσθέσετε τη διεύθυνση IP του διακομιστή στο αρχείο /etc/mongodb.conf
Απλώς επεξεργαστείτε το με:
sudo nano
Και μπορούμε να δούμε κάτι παρόμοιο με αυτό:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Τα οποία επεξεργαζόμαστε με τα δεδομένα του διακομιστή μας.
Επιτρέποντας την πρόσβαση στο MongoDB από παντού, παρέχει απεριόριστη πρόσβαση στα δεδομένα της βάσης δεδομένων. Επομένως, είναι προτιμότερο να παραχωρήσετε πρόσβαση στην προεπιλεγμένη διεύθυνση IP συγκεκριμένης τοποθεσίας της θύρας MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Μόλις γίνει αυτό, αρκεί να επανεκκινήσετε την υπηρεσία έτσι ώστε οι νέες αλλαγές να φορτωθούν στην αρχή, αυτό κάνουμε με:
sudo systemctl restart mongodb
Δημιουργήστε έναν χρήστη στο MongoDB με κωδικό πρόσβασης
Από προεπιλογή, η βάση δεδομένων έχει πολύ απλή πρόσβαση, έτσι ώστε να το ενισχύσουμε μπορούμε να δημιουργήσουμε έναν χρήστη με κωδικό πρόσβασης.
Το MongoDB χρησιμοποιεί το μηχανισμό ελέγχου ταυτότητας SCRAM από προεπιλογή. Η χρήση του SCRAM στο σύστημα επαληθεύει τα παρεχόμενα διαπιστευτήρια χρήστη έναντι του ονόματος χρήστη, του κωδικού πρόσβασης και της βάσης δεδομένων ελέγχου ταυτότητας.
Απλώς ξεκινήστε την κονσόλα βάσης δεδομένων με την ακόλουθη εντολή:
Mongo
Μπορούμε να δημιουργήσουμε μια λίστα με τις υπάρχουσες βάσεις δεδομένων με:
show dbs
Μπορούμε να δημιουργήσουμε έναν χρήστη που θα μας επιτρέψει να διαχειριστούμε τους χρήστες και τις λειτουργίες όπως δημιουργία χρηστών, παραχώρηση ή ανάκληση ρόλων χρηστών και δημιουργία ή τροποποίηση τελωνειακών ρόλων.
Απλά γράψε
use admin
Και δημιουργούμε τον χρήστη με την ακόλουθη εντολή, όπου αντικαθιστούμε το όνομα του χρήστη "root" και τον κωδικό πρόσβασης "password", από την πρόσβαση crecenciales που πιστεύουμε ότι είναι κατάλληλη.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Μόλις γίνει αυτό, πρέπει να ενεργοποιήσουμε τη μέθοδο ελέγχου ταυτότητας για αυτό θα επεξεργαστούμε το ακόλουθο αρχείο:
sudo nano /lib/systemd/system/mongodb.service
Και θα αναζητήσουμε την επόμενη γραμμή:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
και επεξεργαστείτε έτσι ώστε να έχει ως εξής:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Τώρα απλώς κάνουμε επανεκκίνηση στη βάση δεδομένων
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Δοκιμάζουμε τη μέθοδο ελέγχου ταυτότητας με:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Βοηθήστε με με αυτό το ΣΦΑΛΜΑ.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Σφάλμα: listDatabases απέτυχε: {
«Εντάξει»: 0,
"Errmsg": "δεν έχει εξουσιοδότηση στον διαχειριστή για εκτέλεση της εντολής {listDatabases: 1.0, $ db: \" admin \ "}"
"Κωδικός": 13,
"CodeName": "Μη εξουσιοδοτημένο"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1