V tomto blogu sme hovorili o niektorých databázových systémoch, z ktorých najobľúbenejšie sú MariaDB a MySQL, pretože to sú systémy, ktoré sú zvyčajne obsiahnuté v Xampp alebo Lampp. Tentokrát sa budeme baviť iný systém, ktorý je MongoDB.
MongoDB je otvorený databázový systém NoSQL zameraný na dokumenty, Toto je moderný systém správy databáz dokumentov navrhnutý pre vysoko výkonnú perzistenciu údajov, vysoká dostupnosť, ako aj automatické škálovanie, založené na technológii techniky NoSQL.
Namiesto ukladania údajov do tabuliek, ako sa to deje v relačných databázach, ukladá MongoDB dátové štruktúry do dokumentu, čo je dátová štruktúra pozostávajúca z párov polí a hodnôt (dokumenty MongoDB sú porovnateľné s objektmi JSON).
Pretože poskytuje vysoký výkon a vynikajúce charakteristiky škálovateľnosti, používa sa na vytváranie moderných aplikácií, ktoré vyžadujú výkonné, kriticky dôležité a vysoko dostupné databázy.
Inštalácia MongoDB na Ubuntu
Ak chcete nainštalovať tento databázový systém do nášho systému, Musíme iba otvoriť terminál a vykonať v ňom nasledujúci príkaz:
sudo apt install mongodb
Inštalácia je hotová, Služba MongoDB sa spustí automaticky cez systemd a proces bude prebiehať na porte 27017. Jeho stav môžete skontrolovať pomocou príkazu:
sudo systemctl status mongodb
Ak nie, môžeme vynútiť štart pomocou tohto príkazu:
sudo systemctl start mongodb
Povolenie vzdialených pripojení k MongoDB
Databázový systém MongoDB štandardne používa port 27017, ktorý musíme otvoriť Aby sme mohli prijímať vzdialené pripojenia, povoľujeme ich iba pomocou nasledujúceho príkazu.
sudo ufw allow 27017
V predvolenom nastavení je k portu 27017 prístup iba z miestnej adresy 127.0.0.1. Pre umožnenie vzdialeného pripojenia k MongoDB je potrebné do súboru pridať IP adresu servera /etc/mongodb.conf
Stačí ich upraviť pomocou:
sudo nano
A môžeme vidieť niečo podobné tomuto:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Ktoré upravujeme údajmi z nášho servera.
Umožňujúc odkiaľkoľvek prístup k MongoDB, poskytuje neobmedzený prístup k údajom v databáze. Preto je lepšie poskytnúť prístup k predvolenej adrese IP špecifickej pre dané miesto portu MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Akonáhle je to hotové, stačí reštartovať službu, aby sa na začiatku načítali nové zmeny, čo robíme s:
sudo systemctl restart mongodb
Vytvorte používateľa v MongoDB pomocou hesla
Štandardne má databáza dosť jednoduchý prístup, aby sme ju posilnili, môžeme vytvoriť používateľa s heslom.
MongoDB používa mechanizmus autentifikácie SCRAM predvolene. Použitím SCRAM v systéme sa overia zadané poverenia používateľa podľa mena používateľa, hesla a autentifikačnej databázy.
Stačí spustiť databázovú konzolu pomocou nasledujúceho príkazu:
Mongo
Môžeme vytvoriť zoznam existujúcich databáz pomocou:
show dbs
Môžeme vytvoriť používateľa, ktorý nám umožní spravovať používateľov a funkcie napríklad vytváranie používateľov, udeľovanie alebo rušenie rolí používateľov a vytváranie alebo úprava colných rolí.
Stačí napísať
use admin
A používateľa vytvoríme nasledujúcim príkazom, kde nahradíme meno používateľa „root“ a heslo „heslo“, prístupovými Crecenciales, ktoré považujeme za vhodné.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Keď to bude hotové, musíme povoliť metódu autentifikácie z tohto dôvodu upravíme nasledujúci súbor:
sudo nano /lib/systemd/system/mongodb.service
A budeme hľadať ďalší riadok:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
A upraviť tak, aby to bolo takto:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Teraz jednoducho reštartujeme z databázy
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Metódu autentifikácie testujeme pomocou:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Pomôžte mi s touto CHYBOU.
2021-03-24T21: 33: 16.233 + 0000 E DOPYT [vlákno1] Chyba: zoznam zlyhal: {
«Ok»: 0,
"Errmsg": "nie je oprávnený správcom na vykonanie príkazu {listDatabases: 1.0, $ db: \" admin \ "}",
"Kód": 13,
"CodeName": "Neoprávnené"
}:
_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