MongoDB je multiplatformová dokumentová databáza. Radí sa medzi NoSQL databázy a namiesto tradičných relačných databáz využívajúcich tabuľky používa dokumenty podobné formátu JSON (MongoDB formát nazýva BSON) a dynamické databázové schémy, ktoré umožňujú vytváranie a integráciu dát pre aplikácie jednoduchšie a rýchlejšie.
Databáza MongoDB bola pôvodne vyvinutá softvérovou spoločnosťou 10gen (premenovaná na MongoDB Inc.) v novembri 2007 ako komponenta plánovaného PaaS produktu. V roku 2009 sa z projektu stal open-source. MongoDB je najpopulárnejší NoSQL databázový systém.
Vyskúšajte si výkon prémiového VPS ☁
Lepšie zažiť, ako len počuť – vyskúšajte si profesionálny Virtuálny server od Websupport pre produkčné použitie úplne zdarma.
Viac na websupport.sk/servery
MongoDB je k dispozícii zadarmo pod licenciou Server Side Public License (SSPL), do októbra 2018 bola licencia GNU Affero General Public License. Jazykové ovládače sú dostupné pod Apache Licence. Ďalej MongoDB Inc. ponúka proprietárne licencie pre MongoDB v Enterprise Edition s podporou a rozšírenými funkciami.
Návod popisuje inštaláciu MongoDB Community Edition vo verzii 6 z oficiálneho repozitára na linuxovú distribúciu Ubuntu 22.04 a otestovanie funkčnosti databázy po inštalácii.
Inštalácia MongoDB
Aktualizácia repozitárov a inštalácia aktualizácii balíčkov
sudo apt-get update sudo apt-get upgrade
Import verejného kľúča, ktorý používa systém správy balíkov
sudo apt-get install gnupg curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \ sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \ --dearmor
Vytvorenie súboru s repozitárom
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
Reload lokálnej databázy balíčkov
sudo apt-get update
Inštalácia posledných verzií MongoDB balíčkov
sudo apt-get install -y mongodb-org
V prípade, že je pre vás dôležite zostať na konkrétnej verzii MongoDB a neinštalovať aktualizácie je potrebné dať balíčky do stavu hold. Táto časť je voliteľná a nastavíte ju príkazmi
echo "mongodb-org hold" | sudo dpkg --set-selections echo "mongodb-org-database hold" | sudo dpkg --set-selections echo "mongodb-org-server hold" | sudo dpkg --set-selections echo "mongodb-mongosh hold" | sudo dpkg --set-selections echo "mongodb-org-mongos hold" | sudo dpkg --set-selections echo "mongodb-org-tools hold" | sudo dpkg –set-selections
Spúšťanie MongoDB
Spustenie servera
sudo service mongod start
Kontrola, či je MongoDB spustené
sudo service mongod status
Voliteľne môžete zaistiť, že MongoDB sa spustí po reštarte systému
sudo systemctl enable mongod
Stopnutie servera
sudo service mongod stop
Reštart servera
sudo service mongod restart
V prípade, že sa nepodarí mongod
naštartovať a vráti chybové hlásenie Failed to start mongod.service: Unit mongod.service not found.
Spustite príkaz
sudo systemctl daemon-reload
Pripojenie k MongoDB po inštalácii otestujete zadaním príkazu
mongosh
Následne môžete MongoDB shell mongosh
ukončiť príkazom exit
alebo klávesovou skratkou Ctrl + C
.
Zabezpečenie MongoDB pomocou hesla
V predvolenom nastavení MongoDB nevyžaduje heslo na prístup k databáze. Odporúča sa však jeho nastavenie na zabezpečenie databázy a zabránenie neoprávnenému prístupu.
Pripojte sa k MongoDB shell
mongosh
Prepnutie do admin
databázy, ktorá sa používa na správu používateľov a rolí
$ use admin
Ako príklad vytvoríme používateľa admin
s heslom v11CWRvA4j7
(použite vlastné)
$ db.createUser({ user: "admin", pwd: "v11CWRvA4j7", roles: [ { role: "root", db: "admin" } ] })
Rola root má plný prístup ku všetkým databázovým zdrojom a funkciám. Ukončite MongoDB shell príkazom
$ exit
Povolenie autentifikácie
V predvolenom nastavení MongoDB nevyžaduje autentifikáciu na prístup k databáze. Na zabezpečenie databázy a zabránenie neoprávnenému prístupu sa však odporúča povoliť autentifikáciu.
Otvorte konfiguračný súbor MongoDB
sudo nano /etc/mongod.conf
Nájdite sekciu security
v konfiguračnom súbore a pridajte nasledujúce riadky:
security
:
authorization: enabled
Obsah súboru uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesu y
a potvrdením klávesom Enter
.
Reštartujte službu MongoDB
sudo systemctl restart mongod
Teraz je funkcia autorizácie pre MongoDB povolená a vyžaduje, aby sa používatelia na prístup k databáze overili pomocou používateľského mena a hesla.
Povolenie vzdialeného prístupu k MongoDB
V predvolenom nastavení MongoDB umožňuje pripojenie z localhost
-u resp. IP adresy 127.0.0.1
. Ak chcete povoliť prístup aj z ďalších IP adries alebo rozsahov upravte konfiguračný súbor MongoDB
sudo nano /etc/mongod.conf
Nájdite sekciu net
v konfiguračnom súbore a pridajte nasledujúce riadky
net: bindIp: 127.0.0.1,192.168.1.0/24
Ak nahradíte 127.0.0.1, 192.168.1.0/24
vami požadovanými IP adresami alebo rozsahmi povolíte z nich prístup.
Obsah súboru uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesu y
a potvrdením klávesom Enter
.
Reštartujte službu MongoDB
sudo systemctl restart mongod
V prípade, že chcete povoliť prístup z akejkoľvek IP adresy zadajte 0.0.0.0
, podporované sú aj IP adresy vo formáte IPv6.
V prípade, že používate v systéme firewall ufw
povoľte MongoDB port 27017
príkazom
sudo ufw allow 27017
Prakticky sme si ukázali, ako nainštalovať a zabezpečiť MongoDB na Ubuntu 22.04. Ako nastaviť heslo, povoliť autentifikáciu pre databázu a obmedziť prístup na konkrétne adresy IP alebo rozsahy. Prejdením týchto krokov sa môžete uistiť, že vaša inštalácia MongoDB má základné zabezpečenie a je prístupná iba oprávneným používateľom.