În acest blog am vorbit despre unele sisteme de baze de date, printre care cele mai populare sunt MariaDB și MySQL, deoarece acestea sunt sistemele care sunt de obicei incluse în Xampp sau Lampp. De data aceasta vom vorbi despre un alt sistem care este MongoDB.
MongoDB este un sistem de baze de date NoSQL orientat către documente open source, Aceasta este un sistem modern de gestionare a bazelor de date de documente conceput pentru persistența datelor de înaltă performanță, disponibilitate ridicată, precum și scalare automată, bazată pe tehnologia tehnicii NoSQL.
În loc să salveze datele în tabele așa cum se face în bazele de date relaționale, MongoDB salvează structurile de date într-un document, care este o structură de date care cuprinde perechi de câmp și valoare (documentele MongoDB sunt comparabile cu obiectele JSON).
Deoarece oferă performanțe ridicate și caracteristici de scalabilitate excelente, este utilizat pentru a construi aplicații moderne care necesită baze de date puternice, critice pentru misiune și foarte disponibile.
Instalarea MongoDB pe Ubuntu
Pentru a instala acest sistem de baze de date pe sistemul nostru, Trebuie doar să deschidem un terminal și să executăm următoarea comandă:
sudo apt install mongodb
Instalare finalizată, Serviciul MongoDB va porni automat prin systemd iar procesul va rula pe portul 27017. Puteți verifica starea acestuia folosind comanda:
sudo systemctl status mongodb
Dacă nu, putem forța startul cu această comandă:
sudo systemctl start mongodb
Activarea conexiunilor la distanță la MongoDB
Sistemul de baze de date MongoDB implicit folosește portul 27017 pe care trebuie să îl deschidem Pentru a accepta conexiuni la distanță, o activăm numai cu următoarea comandă.
sudo ufw allow 27017
În mod implicit, portul 27017 poate fi accesat numai de la adresa locală 127.0.0.1. Pentru a permite conexiuni la distanță la MongoDB, este necesar să adăugați adresa IP a serverului în fișier /etc/mongodb.conf
Editați-l doar cu:
sudo nano
Și putem vedea ceva similar cu acesta:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Pe care le edităm cu datele de pe serverul nostru.
Permițând accesul la MongoDB de oriunde, oferă acces nerestricționat la datele din baza de date. Prin urmare, este mai bine să dați acces la adresa IP implicită specifică locației portului MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Odată ce ați făcut acest lucru, este suficient să reporniți serviciul, astfel încât noile modificări să fie încărcate la început, asta facem cu:
sudo systemctl restart mongodb
Creați un utilizator în MongoDB cu parolă
În mod implicit, baza de date are acces destul de simplu, deci pentru a consolida acest lucru putem crea un utilizator cu o parolă.
MongoDB utilizează mecanismul de autentificare SCRAM în mod implicit. Utilizarea SCRAM pe sistem verifică acreditările de utilizator furnizate în raport cu numele de utilizator, parola și baza de date de autentificare.
Pur și simplu porniți consola bazei de date cu următoarea comandă:
Mongo
Putem face o listă a bazelor de date existente cu:
show dbs
Putem crea un utilizator care ne va permite să gestionăm utilizatorii și funcțiile precum crearea de utilizatori, acordarea sau revocarea rolurilor de utilizator și crearea sau modificarea rolurilor vamale.
Doar tastați
use admin
Și creăm utilizatorul cu următoarea comandă, unde înlocuim numele utilizatorului „rădăcină” și parola „parolă”, cu creșterile de acces pe care le considerăm adecvate.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Odată ce acest lucru este făcut, trebuie să activăm metoda de autentificare pentru aceasta vom edita următorul fișier:
sudo nano /lib/systemd/system/mongodb.service
Și vom căuta următoarea linie:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Și editați astfel încât să fie după cum urmează:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Acum pur și simplu repornim în baza de date
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Testăm metoda de autentificare cu:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Ajută-mă cu această EROARE.
2021-03-24T21: 33: 16.233 + 0000 E CERERE [thread1] Eroare: listBazele de date nu au reușit: {
«Ok»: 0,
"Errmsg": "nu este autorizat de administrator să execute comanda {listDatabases: 1.0, $ db: \" admin \ "}",
„Cod”: 13,
"CodeName": "Neautorizat"
}:
_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