Ako nainštalovať MongoDB na Debian 12


Tento návod existuje pre tieto verzie OS

  • Debian 12 (knihomoľ)
  • Debian 11 (bullseye)

Na tejto stránke

  1. Predpoklady
  2. Príprava servera Debian
  3. Inštalácia servera MongoDB na Debian
  4. Zabezpečenie servera MongoDB s autentifikáciou
  5. Otestujte overenie MongoDB
  6. Vytvorenie prvej databázy a užívateľa
  7. Záver

MongoDB je open-source, multiplatformový a distribuovaný databázový systém NoSQL (non-SQL alebo Non-Relational). Namiesto ukladania údajov do tabuliek, ako sú tradičné databázy SQL, MongoDB používa flexibilné dokumenty na ukladanie rôznych formulárov údajov. MongoDB používa na ukladanie údajov binárny formát JSON, BSON.

MongoDB je distribuovaná databáza NoSQL so vstavanou vysokou dostupnosťou, automatickým núdzovým prepnutím a redundanciou údajov a horizontálnym škálovaním prostredníctvom shardingu naprieč distribuovanými klastrami a podporuje geografické nasadenie vo viacerých regiónoch. MongoDB tiež poskytuje API dotazov, ktoré podporuje operácie CRUD (čítanie a zápis), kanál na agregáciu údajov, textové vyhľadávanie a geopriestorové dotazy.

V tomto návode sa naučíte, ako nainštalovať MongoDB na server Debian 12. Dozviete sa tiež, ako povoliť autentifikáciu MongoDB, používať klienta MongoDB „mongosh“ a používať základné dotazy na vytvorenie nového používateľa a databázy v MongoDB.

Predpoklady

Ak chcete začať s týmto tutoriálom, uistite sa, že máte nasledujúce:

  • Server Debian 12
  • Používateľ bez oprávnenia root s oprávneniami správcu

Príprava servera Debian

Pred inštaláciou MongoDB na váš server Debian sa odporúča použiť nasledujúce nastavenia:

  • Zakázať transparentné veľké stránky (THP) prostredníctvom skriptu systemd
  • Zvýšte predvolené limity pre používateľa MongoDB
  • Povoľte swapiness a zväčšite pamäť max_mmap pomocou súboru '/etc/sysctl.conf'

Teraz nakonfigurujme server Debian.

Najprv spustite príkaz 'nano' nižšie a vytvorte nový súbor služby /etc/systemd/system/disable-thp.service.

sudo nano /etc/systemd/system/disable-thp.service

Prilepením nasledujúceho servisného skriptu nastavte „transparent_hugepage“ na „nikdy“.

[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target

Uložte súbor a ukončite ho.

Teraz spustite nasledujúci príkaz 'systemctl' na opätovné načítanie správcu systemd. Potom spustite a povoľte službu 'disable-thp'. Vďaka tomu bude 'transparent_hugepage' zakázaná pri každom spustení systému.

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Potom vytvorte nový súbor /etc/security/limits.d/mongodb.conf pomocou editora 'nano'.

sudo nano /etc/security/limits.d/mongodb.conf

Vložte konfiguráciu nižšie, aby ste nastavili proces maximálnych limitov a súbor na '64000' pre používateľa 'mongod'.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Po dokončení uložte súbor a ukončite program.

Potom upravte súbor '/etc/sysctl.conf' nasledujúcim spôsobom.

sudo nano /etc/sysctl.conf

Vložte konfiguráciu nižšie do spodnej časti riadku.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

Uložte súbor a ukončite ho.

Nakoniec spustite príkaz 'sysctl' nižšie, aby ste okamžite použili zmeny v súbore '/etc/sysctl.conf'.

sudo sysctl -p

Inštalácia servera MongoDB na Debian

Teraz, keď ste nakonfigurovali server Debian, začnime s inštaláciou MongoDB. V tomto prípade nainštalujete MongoDB 7.0 prostredníctvom oficiálneho úložiska MongoDB na váš server Debian.

Nainštalujte balíky 'gnupg' a 'curl' do vášho systému Debian s nasledujúcim:

sudo apt install gnupg curl

Teraz pridajte kľúč MongoDB GPG a úložisko pre Debian pomocou príkazu nižšie. V tomto prípade nastavíte úložisko pre MongoDB 7.0.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Potom spustite príkaz 'apt' nižšie, aby ste obnovili zoznam balíkov a nainštalujte balík 'mongodb-org'.

sudo apt update && sudo apt install mongodb-org -y

V nasledujúcom výstupe môžete vidieť inštaláciu MongoDB.

Po dokončení inštalácie znova načítajte správcu systemd pomocou príkazu 'systemctl'.

sudo systemctl daemon-reload

Spustite a povoľte službu 'mongod' a potom ju overte, aby ste sa uistili, že služba beží.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Ak je spustený MongoDB, zobrazí sa výstup podobný tomuto:

Zabezpečenie servera MongoDB s autentifikáciou

Po nainštalovaní MongoDB musíte zabezpečiť inštaláciu povolením overovania MongoDB. V tejto časti nastavíte overenie MongoDB a vytvoríte nového administrátora pre MongoDB. Toto vám ukáže, ako používať 'mongosh' alebo klienta MongoDB a základné dotazy MongoDB.

Prihláste sa na server MongoDB pomocou príkazu 'mongosh' nižšie. Pre predvolenú inštaláciu MongoDB neexistuje žiadne heslo.

mongosh

Spustite príkaz 'disableTelemetry()', aby ste zakázali anonymné zhromažďovanie údajov z MongoDB.

disableTelemetry()

Prepnite sa do databázy 'admin' pomocou dopytu 'use'.

use admin

Teraz spustite nasledujúci dotaz na vytvorenie nového používateľa 'myAdmin', ktorý bude použitý ako správca pre váš server MongoDB. Po zobrazení výzvy zadajte svoje heslo.

db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Zadajte príkaz 'quit()' na ukončenie servera MongoDB.

quit()

Potom upravte súbor '/etc/mongod.conf' pomocou editora 'nano'.

sudo nano /etc/mongod.conf

Odkomentujte možnosť 'zabezpečenie' a pridajte 'autorizácia: povolená', aby ste povolili autentifikáciu na MongoDB.

security:
  authorization: enabled

Uložte súbor a ukončite editor.

Teraz spustite príkaz 'systemctl' nižšie, aby ste reštartovali server MongoDB a použili svoje úpravy.

sudo systemctl restart mongod

Otestujte overenie MongoDB

Teraz, keď ste vytvorili administrátora a povolili autentifikáciu na serveri MongoDB. Overme si vašu konfiguráciu prihlásením sa na server MongoDB cez používateľa 'myAdmin'.

Spustite príkaz 'mongosh' nižšie, aby ste sa prihlásili na server MongoDB ako používateľ 'myAdmin' a po zobrazení výzvy zadajte svoje heslo.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

Po prihlásení spustite nasledujúci dotaz a skontrolujte stav pripojenia k serveru MongoDB.

db.runCommand({connectionStatus : 1})

Nižšie môžete vidieť, že ste sa pripojili ako používateľ 'myAdmin' k serveru MongoDB.

Vytvorenie prvej databázy a užívateľa

V tejto časti vytvoríte novú databázu a používateľa, ktorý bude použitý pre vašu aplikáciu prostredníctvom klienta MongoDB „mongosh“. Uistite sa teda, že sa nachádzate v prostredí 'mongosh'.

Najprv spustite dotaz 'use' na vytvorenie a prepnutie cieľovej databázy. V tomto príklade vytvoríte novú databázu 'mydb'. Vaša výzva MongoDB sa zmení na 'mydb'.

use mydb

Teraz spustite nasledujúci dotaz a vytvorte nového používateľa 'myUser' s oprávneniami na čítanie a zápis do databázy 'mydb'. Po zobrazení výzvy zadajte nové heslo.

use mydb
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Potom spustite nasledujúce dotazy na prepnutie databázy 'admin' a overenie zoznamu používateľov na vašom serveri MongoDB.

use admin
db.system.users.find()

Mali by ste vidieť používateľa 'myAdmin' a 'myUser' vytvorené takto:

Teraz napíšte 'quit()', aby ste opustili server MongoDB.

Nakoniec sa prihláste na server MongoDB ako nový používateľ 'myUser' do databázy 'mydb' pomocou príkazu nižšie. Po zobrazení výzvy zadajte svoje heslo.

mongosh --port 27017 -u "myUser" \
--authenticationDatabase "mydb" -p

Spustite dotaz nižšie a skontrolujte svoje aktuálne pripojenie

db.runCommand({connectionStatus : 1})

V sekcii 'authInfo' môžete vidieť, že ste sa overili ako používateľ 'myUser' a databáza 'mydb'.

Záver

Gratulujem! Dokončili ste inštaláciu MongoDB 7.0 na server Debian 12. Tiež ste sa naučili, ako zabezpečiť server MongoDB povolením autentifikácie a vytvorením nového administrátora pre MongoDB. Nakoniec ste sa naučili, ako vytvoriť novú databázu MongoDB a používateľa pre vaše aplikácie.