MongoDB je databáze dokumentů, ukládající data ve formě podobné JSON, což je revoluční přístup na rozdíl od tradičních relačních databází. To neznamená, že databáze SQL v dohledné době vymřou; budou tu dlouho, když budete potřebovat ukládat strukturovaná data.
Jak již bylo řečeno, MongoDB získává stále více případů použití; schopnost ukládat data ve formě, která se může za běhu měnit, jsou věci, se kterými je třeba počítat.
V tomto tutoriálu nainstalujeme nejnovější komunitní verzi této databáze NoSQL do RHEL 8 / CentOS 8 pomocí balíčku tarball. Aby to fungovalo hladce, nastavíme minimální prostředí a otestujeme naši konfiguraci a spuštěnou službu.
V tomto tutoriálu se naučíte:
- Jak stáhnout a extrahovat MongoDB tarball
- Jak nastavit prostředí pro službu
- Jak spravovat službu mongod
- Jak se přihlásit do mongo shell, vložit a dotazovat se na ukázková data
Příklad dotazu v mongodb.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | MongoDB 4 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jak nainstalovat mongodb na RHEL 8 / CentOS 8 pokyny krok za krokem
Před instalací musíme získat adresu URL. K tomu musíme navštívit web komunity MongoDB Download Center, vybrat operační systém a verzi (v tomto případě potřebujeme tarball starší verzi Linuxu 64bit). I když máme k dispozici tlačítko pro stažení, dostaneme také přímou adresu URL níže, kterou můžeme použít přímo z cílového počítače.
To nám ušetří stahování balíčku přes prohlížeč a jeho následné přenášení do cílového počítače, za předpokladu, že máme přístup k internetu z cíle. Poznamenejte si tedy adresu URL, brzy ji použijeme.
- Binární soubory uložíme pod
/opt
. Na cílovém počítači vstoupíme do adresáře:# cd /opt
A stáhněte si tarball poskytnutím adresy URL získané dříve do
wget
:# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz--2019-01-03 16:49:59-- https://fastdl.mongodb. org/linux/mongodb-linux-x86_64-4.0.5.tgz Řešení fastdl.mongodb.org (fastdl.mongodb.org)... 52.222.150.27, 52.222.150.229, 52.222.150.229, 52.222.150.Connecting .org (fastdl.mongodb.org)|52.222.150.27|:443... připojeno.Požadavek HTTP odeslán, čeká se na odpověď... 200 OKLength:73214518 (70M) [application/x-gzip]Ukládání do:'mongodb- linux-x86_64-4.0.5.tgz'mongodb-linux-x86_64-4.0.5.tgz 100 %[=====================================================================================================================>] 69,82 milionů 3,12 MB/s za 23 s 2019-01- 03 16:50:22 (3,06 MB/s) - 'mongodb-linux-x86_64-4.0.5.tgz' uloženo [73214518/73214518]
- Extrahujeme tarball:
# tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
A vytvořte snáze zapamatovatelný symbolický odkaz s názvem
mongodb
který ukazuje na extrahovaný adresář (číslo verze se může lišit):# ln -s mongodb-linux-x86_64-4.0.5 mongodb
- Vytvoříme uživatele, který bude spouštět službu s názvem
mongod
:# useradd mongod
- Vytváříme adresář, kam bude mongodb ukládat svá data:
# mkdir -p /var/lib/mongo
- Nastavili jsme
mongod
uživatele jako vlastníka binárních souborů i datového adresáře:# chown -R mongod:mongod /opt/mongodb*# chown -R mongod:/var/lib/mongo
- Vytváříme základní konfigurační soubor pro mongodb. Zadáme vytvořený datový adresář a nastavíme databázi tak, aby naslouchala pouze na localhost, na výchozím portu
27017
. Vytvoříme textový soubor/etc/mongod.conf
s následujícím obsahem:storage: dbPath: "/var/lib/mongo" journal: enabled: true net: port: 27017 bindIp: "127.0.0.1"
Všimněte si
dbPath
parametr, který jsme nastavili do adresáře, který jsme vytvořili pro ukládání dat v předchozím kroku. - Pro
systemd
abychom mohli službu spravovat, vytvoříme textový soubor/etc/systemd/system/mongod.service
s minimální konfigurací:[Unit] Description=MongoDB After=syslog.target network.target [Service] Type=simple User=mongod Group=mongod ExecStart=/opt/mongodb/bin/mongod --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Všimněte si, že jsme použili
mongod
uživatel a skupina, použili naši vlastní cestu promongod
binární a zahrnoval konfigurační soubor, který jsme vytvořili ručně. - Nastavili jsme
selinux
prozatím povoleno, protože by to službě zablokovalo přístup ke zdrojům. Nastaveníselinux
policy je mimo rozsah tohoto tutoriálu.# setenforce 0
- Zeptáme se
systemd
znovu načíst:systemctl daemon-reload
- A zkontrolujte, zda je služba rozpoznána:
# systemctl status mongod mongod.service - MongoDB Načteno:načteno (/etc/systemd/system/mongod.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:neaktivní (mrtvé )
- Jsme připraveni spustit službu:
# systemctl start mongod
- A zkontrolujte jeho stav. Pokud vše půjde dobře, měli bychom vidět něco jako následující:
# systemctl status mongod mongod.service - MongoDB Načteno:načteno (/etc/systemd/system/mongod.service; vypnuto; přednastaveno dodavatele:vypnuto) Aktivní:aktivní (běží) od Čt 2019-01-03 17:01:48 CET; před 4s Hlavní PID:2993 (mongod) Úkoly:23 (limit:12544) Paměť:45,3M CGroup:/system.slice/mongod.service 2993 /opt/mongodb/bin/mongod --config /etc/mongod.conf
- Naši službu můžeme otestovat pomocí
mongo shell
, rozhraní příkazového řádku dodávané s MongoDB. Abychom k němu měli přístup, musíme zahrnout binární soubory, které jsme extrahovali, do$PATH
. Jako líní administrátoři to děláme pouze jednou, trvale. Do/root/.bash_profile
přidáme následující řádek , před poslední řádek „export PATH“:## mongodbPATH=$PATH:/opt/mongodb/bin
A spusťte skript:
# . ~/.bash_profile
- Spustíme
mongo shell
:# mongoMongoDB shell verze v4.0.5připojování k:mongodb://127.0.0.1:27017/?gssapiServiceName=mongodbImplicitní relace:session { "id" :UUID("8999342b-e313-48e6-92c4-ceb") }Verze serveru MongoDB:4.0.5Vítejte v prostředí MongoDB. Pro interaktivní nápovědu zadejte "help".[...]>
Mohou se objevit některá upozornění při spuštění, například nastavení velkých stránek, ale v tomto tutoriálu je budeme ignorovat.
- Na
mongo shell
, požádáme o všechny přítomné databáze:> dbtest
- A přepněte na dodaný
test
databáze:> použijte testswitched to db test
- Některá testovací data (klíč „x“ s hodnotou „1“) vložíme do kolekce vytvořené za běhu:
> db.exampleCollection.insertOne( { x:1 } );{ "acknowledged" :true, "insertedId" :ObjectId("5c2e33040854f2d89326ae9c")}>
- A nakonec se dotážeme na všechna data v nové kolekci a ověříme, že náš pár klíč–hodnota je úspěšně uložen:
> db.getCollection("exampleCollection").find().pretty();{ "_id " :ObjectId("5c2e4c2fd129ceef6a6c6112"), "x" :1 }>