V tem blogu smo govorili o nekaterih sistemih baz podatkov, med katerimi sta najbolj priljubljena MariaDB in MySQL, saj gre za sisteme, ki so običajno vključeni v Xampp ali Lampp. Tokrat se bomo pogovarjali drug sistem, ki je MongoDB.
MongoDB je odprtokodni sistem baz podatkov NoSQL, To je sodoben sistem za upravljanje z bazami dokumentov, zasnovan za visoko zmogljivo obstojnost podatkov, visoka razpoložljivost, pa tudi samodejno skaliranje, ki temelji na tehnologiji tehnike NoSQL.
Namesto da shranjuje podatke v tabelah, kot to počne v relacijskih zbirkah podatkov, MongoDB shrani podatkovne strukture v dokument, ki je podatkovna struktura, sestavljena iz parov polj in vrednosti (dokumenti MongoDB so primerljivi z objekti JSON).
Ker zagotavlja visoko zmogljivost in odlične lastnosti razširljivosti, se uporablja za izdelavo sodobnih aplikacij, ki zahtevajo zmogljive, kritične in zelo dostopne baze podatkov.
Namestitev MongoDB na Ubuntu
Če želite namestiti ta sistem zbirke podatkov v naš sistem, Terminal moramo le odpreti in v njem izvesti naslednji ukaz:
sudo apt install mongodb
Namestitev končana, Storitev MongoDB se bo samodejno zagnala prek systemd in postopek se bo zagnal na vratih 27017. Njegovo stanje lahko preverite z ukazom:
sudo systemctl status mongodb
Če ne, lahko prisilimo začetek s tem ukazom:
sudo systemctl start mongodb
Omogočanje oddaljenih povezav z MongoDB
Sistem zbirke podatkov MongoDB privzeto uporablja vrata 27017, ki jih moramo odpreti Če želimo sprejeti oddaljene povezave, jo omogočimo le z naslednjim ukazom.
sudo ufw allow 27017
Do vrat 27017 je privzeto mogoče dostopati samo z lokalnega naslova 127.0.0.1. Če želite omogočiti oddaljene povezave z MongoDB, morate v datoteko dodati naslov IP strežnika /etc/mongodb.conf
Samo uredite z:
sudo nano
In lahko vidimo nekaj podobnega temu:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Ki ga urejamo s podatki našega strežnika.
Omogoča dostop do MongoDB od vsepovsod in omogoča neomejen dostop do podatkov v zbirki podatkov. Zato je bolje omogočiti dostop do privzetega IP naslova vrat MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Ko je to storjeno, je dovolj, da ponovno zaženete storitev, tako da se nove spremembe naložijo na začetku, to storimo z:
sudo systemctl restart mongodb
Ustvari uporabnika v MongoDB z geslom
Privzeto ima baza podatkov dokaj preprost dostop, zato lahko za okrepitev tega uporabnika ustvarimo z geslom.
MongoDB uporablja mehanizem za preverjanje pristnosti SCRAM privzeto. Uporaba SCRAM-a v sistemu preveri priložene poverilnice uporabnika glede uporabniškega imena, gesla in zbirke podatkov za preverjanje pristnosti.
Preprosto zaženite konzolo baze podatkov z naslednjim ukazom:
Mongo
Seznam obstoječih baz podatkov lahko sestavimo z:
show dbs
Ustvarimo lahko uporabnika, ki nam bo omogočal upravljanje uporabnikov in funkcij na primer ustvarjanje uporabnikov, podelitev ali preklic uporabniških vlog in ustvarjanje ali spreminjanje carinskih vlog.
Samo vtipkajte
use admin
Uporabnika ustvarimo z naslednjim ukazom, kjer nadomestimo ime uporabnika "root" in geslo "geslo" z dostopnimi krecenciales, za katere menimo, da so ustrezni.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Ko je to končano, moramo omogočiti način preverjanja pristnosti za to bomo uredili naslednjo datoteko:
sudo nano /lib/systemd/system/mongodb.service
In poiskali bomo naslednjo vrstico:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
in uredite tako, da je naslednji:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Zdaj preprosto se ponovno zaženemo v zbirki podatkov
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Način preverjanja pristnosti preizkusimo z:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Pomagajte mi pri tej NAPAKI.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Napaka: seznam baz podatkov ni uspel: {
«V redu»: 0,
"Errmsg": "ni pooblaščen za skrbnika za izvajanje ukaza {listDatabases: 1.0, $ db: \" admin \ "}",
"Koda": 13,
"CodeName": "Nepooblaščeno"
}:
_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