Šajā emuārā mēs esam runājuši par dažām datu bāzu sistēmām, no kurām vispopulārākās ir MariaDB un MySQL, jo tās ir sistēmas, kas parasti tiek iekļautas Xampp vai Lampp. Šoreiz parunāsim cita sistēma, kas ir MongoDB.
MongoDB ir uz atvērtā koda dokumentu orientētu NoSQL datu bāzes sistēmu, Tas ir moderna dokumentu datu bāzes pārvaldības sistēma, kas paredzēta augstas veiktspējas datu noturībai, augsta pieejamība, kā arī automātiska mērogošana, pamatojoties uz NoSQL tehnikas tehnoloģiju.
Tā vietā, lai datus saglabātu tabulās, kā tas tiek darīts relāciju datu bāzēs, MongoDB saglabā datu struktūras dokumentā, kas ir datu struktūra, kas sastāv no lauku un vērtību pāriem (MongoDB dokumenti ir salīdzināmi ar JSON objektiem).
Tā kā tas nodrošina augstu veiktspēju un lieliskas mērogojamības īpašības, to izmanto, lai izveidotu modernas lietojumprogrammas, kurām nepieciešamas jaudīgas, kritiskas un ļoti pieejamas datu bāzes.
MongoDB instalēšana Ubuntu
Lai instalētu šo datu bāzes sistēmu mūsu sistēmā, Mums ir jāatver tikai terminālis un tajā jāizpilda šāda komanda:
sudo apt install mongodb
Instalācija pabeigta, MongoDB pakalpojums tiks automātiski palaists, izmantojot systemd un process darbosies portā 27017. Tā statusu var pārbaudīt, izmantojot komandu:
sudo systemctl status mongodb
Ja nē, mēs varam piespiest sākt ar šo komandu:
sudo systemctl start mongodb
Attālo savienojumu iespējošana ar MongoDB
MongoDB datu bāzes sistēma pēc noklusējuma izmanto portu 27017, kas mums jāatver Lai pieņemtu attālos savienojumus, mēs to iespējojam tikai ar šādu komandu.
sudo ufw allow 27017
Pēc noklusējuma portam 27017 var piekļūt tikai no vietējās adreses 127.0.0.1. Lai atļautu attālus savienojumus ar MongoDB, failā ir jāpievieno servera IP adrese /etc/mongodb.conf
Vienkārši rediģējiet to, izmantojot:
sudo nano
Un mēs varam redzēt kaut ko līdzīgu šim:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Ko mēs rediģējam ar datiem no sava servera.
Atļaujot piekļuvi MongoDB no jebkuras vietas, tas dod neierobežotu piekļuvi datu bāzē esošajiem datiem. Tāpēc labāk ir piešķirt piekļuvi MongoDB porta noklusējuma IP adresei.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Kad tas ir izdarīts, ir pietiekami restartēt pakalpojumu, lai sākumā tiktu ielādētas jaunās izmaiņas, mēs to darām ar:
sudo systemctl restart mongodb
Izveidojiet lietotāju MongoDB ar paroli
Pēc noklusējuma datu bāzei ir diezgan vienkārša piekļuve, tāpēc, lai to pastiprinātu, mēs varam izveidot lietotāju ar paroli.
MongoDB izmanto SCRAM autentifikācijas mehānismu pēc noklusējuma. Izmantojot sistēmā SCRAM, tiek pārbaudīti piegādātie lietotāja akreditācijas dati, salīdzinot ar lietotāja vārdu, paroli un autentifikācijas datu bāzi.
Vienkārši sāciet datu bāzes konsoli ar šādu komandu:
Mongo
Mēs varam izveidot esošo datu bāzu sarakstu ar:
show dbs
Mēs varam izveidot lietotāju, kas ļaus mums pārvaldīt lietotājus un funkcijas piemēram, lietotāju izveide, lietotāju lomu piešķiršana vai atsaukšana un muitas lomu izveidošana vai modificēšana.
Vienkārši ierakstiet
use admin
Un mēs izveidojam lietotāju ar šādu komandu, kur mēs aizstājam lietotāja vārdu "root" un paroli "parole" ar piekļuves īpašībām, kuras, mūsuprāt, ir piemērotas.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Kad tas ir izdarīts, mums jāiespējo autentifikācijas metode šim nolūkam mēs rediģēsim šādu failu:
sudo nano /lib/systemd/system/mongodb.service
Un mēs meklēsim nākamo rindu:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Un rediģēt tā, lai tas būtu šāds:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Tagad mēs vienkārši atsāknējam datu bāzē
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Mēs pārbaudām autentifikācijas metodi ar:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Palīdziet man ar šo kļūdu.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Kļūda: sarakstsDatu bāzes neizdevās:
«Labi»: 0,
"Errmsg": "administratoram nav atļauts izpildīt komandu {listDatabases: 1.0, $ db: \" admin \ "}",
"Kods": 13,
"CodeName": "Neautorizēts"
}:
_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