1. Báza znalostí
  2. Cloud a servery
  3. Inštalácia a konfigurácia MongoDB na Ubuntu 22.04 LTS

Inštalácia a konfigurácia MongoDB na Ubuntu 22.04 LTS

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.

Tip: Návod na inštaláciu staršej verzie MongoDB 4.2 na Ubuntu 18.04 LTS

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

Tip: V prípade potreby môžete nainštalovať konkrétnu verziu MongoDB ako napríklad sudo apt-get install -y mongodb-org=6.0.4 mongodb-org-database=6.0.4 mongodb-org-server=6.0.4 mongodb-org-mongos=6.0.4 mongodb-org-tools=6.0.4

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.

Aktualizované 16. augusta 2023

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu