Šiame tinklaraštyje kalbėjome apie kai kurias duomenų bazių sistemas, tarp kurių populiariausios yra „MariaDB“ ir „MySQL“, nes tai sistemos, kurios paprastai yra įtrauktos į „Xampp“ arba „Lampp“. Šį kartą mes kalbėsime apie tai kita sistema, kuri yra Mongodb.
MongoDB yra į atviro kodo dokumentą orientuota „NoSQL“ duomenų bazių sistema, Tai yra moderni dokumentų duomenų bazių valdymo sistema, skirta didelio našumo duomenims išlaikyti, didelis prieinamumas, taip pat automatinis mastelio keitimas, pagrįstas „NoSQL“ technikos technologija.
Užuot išsaugojęs duomenis lentelėse, kaip tai daroma reliacinėse duomenų bazėse, „MongoDB“ išsaugo duomenų struktūras dokumente, kuri yra duomenų struktūra, susidedanti iš laukų ir reikšmių porų („MongoDB“ dokumentai yra palyginami su JSON objektais).
Kadangi jis užtikrina aukštą našumą ir puikias mastelio savybes, jis naudojamas kuriant šiuolaikines programas, kurioms reikalingos galingos, kritiškai svarbios ir labai prieinamos duomenų bazės.
„MongoDB“ diegimas „Ubuntu“
Norėdami įdiegti šią duomenų bazės sistemą į savo sistemą, Turime atidaryti tik terminalą ir jame atlikti šią komandą:
sudo apt install mongodb
Diegimas atliktas, „MongoDB“ paslauga bus paleista automatiškai per „systemd“ ir procesas bus vykdomas 27017. prievade. Jo būseną galite patikrinti naudodami komandą:
sudo systemctl status mongodb
Jei ne, galime priversti pradėti šią komandą:
sudo systemctl start mongodb
Įgalinamas nuotolinis ryšys su „MongoDB“
Pagal numatytuosius nustatymus „MongoDB“ duomenų bazių sistema naudoja 27017 prievadą, kurį turime atidaryti Norėdami priimti nuotolinius ryšius, mes jį įgaliname tik naudodami šią komandą.
sudo ufw allow 27017
Pagal numatytuosius nustatymus prie 27017 prievado galima pasiekti tik iš vietinio adreso 127.0.0.1. Norint leisti nuotolinį ryšį su „MongoDB“, faile būtina pridėti serverio IP adresą /etc/mongodb.conf
Tiesiog redaguokite jį naudodami:
sudo nano
Ir mes galime pamatyti kažką panašaus į tai:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Kurį mes redaguojame naudodami duomenis iš savo serverio.
Leisdamas prieigą prie „MongoDB“ iš bet kur, jis suteikia neribotą prieigą prie duomenų bazės duomenų. Todėl geriau suteikti prieigą prie vietovės numatytojo MongoDB prievado IP adreso.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Kai tai bus padaryta, pakanka iš naujo paleisti paslaugą, kad pradžioje būtų įkelti nauji pakeitimai, mes tai darome:
sudo systemctl restart mongodb
Sukurkite vartotoją „MongoDB“ su slaptažodžiu
Pagal numatytuosius nustatymus duomenų bazė turi gana paprastą prieigą, todėl norėdami ją sustiprinti, galime sukurti vartotoją su slaptažodžiu.
„MongoDB“ naudoja SCRAM autentifikavimo mechanizmą pagal nutylėjimą. Naudojant SCRAM sistemoje, pateikiami vartotojo duomenys tikrinami pagal vartotojo vardą, slaptažodį ir autentifikavimo duomenų bazę.
Tiesiog paleiskite duomenų bazės konsolę naudodami šią komandą:
Mongo
Galime sudaryti esamų duomenų bazių sąrašą su:
show dbs
Mes galime sukurti vartotoją, kuris leis mums valdyti vartotojus ir funkcijas pavyzdžiui, sukurti vartotojus, suteikti ar atšaukti vartotojo vaidmenis ir kurti ar modifikuoti muitinės vaidmenis.
Tiesiog įveskite
use admin
Ir mes sukuriame vartotoją naudodami šią komandą, kur vartotojo vardą „root“ ir slaptažodį „slaptažodį“ pakeičiame prieigos reikalais, kurie, mūsų nuomone, yra tinkami.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Kai tai bus padaryta, turime įgalinti autentifikavimo metodą tam redaguosime šį failą:
sudo nano /lib/systemd/system/mongodb.service
Ir mes ieškosime kitos eilutės:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
ir redaguoti taip, kad jis būtų toks:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Dabar paprasčiausiai perkrauname duomenų bazėje
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Mes tikriname autentifikavimo metodą:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Padėk man su šia KLAIDA.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Klaida: sąrašasDuomenų bazių nepavyko: {
«Gerai»: 0,
"Errmsg": "administratoriui nesuteikta teisė vykdyti komandos {listDatabases: 1.0, $ db: \" admin \ "}",
„Kodas“: 13,
„CodeName“: „Neteisėtas“
}:
_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