Rozhodli jste se pro MongoDB, výbornou alternative to MariaDB když chcete vytvořit aplikaci na MERN stacku, analytickou platformu nebo libovolný systém s dokumentovou databází, ale narazili jste na problémy s příkazovým řádkem a nekonečnými chybami v terminálu.
Ale nebojte se, tahle příručka vám podrobně vysvětlí vše, co potřebujete vědět k instalaci MongoDB na Ubuntu.
MongoDB používá X.Y.Z verzování. 8.0 je hlavní řada verzí a 8.2 je vedlejší vydaní v rámci cyklu verze 8.0. Vedlejší vydání přidávají funkce v rámci stejného hlavního cyklu a od verze 8.0 se nabízejí také pro lokální instalace pro konkrétní případy použití (například Search a Vector Search). MongoDB 8.0 na Ubuntu podporuje 24.04 (Noble), 22.04 (Jammy) a 20.04 (Focal) na 64bitových systémech, s podporou ARM64 na vybraných platformách.
Požadavky: GnuPG a Curl
Než nainstalujete oficiální mongodb-org balíček Ubuntu vyžaduje dvě předpoklady: GnuPG a Curl. Tyto nástroje dávají Ubuntu oprávnění ke stažení MongoDB, protože Ubuntu má své vlastní mongodb balíček není udržován společností MongoDB Inc. a je v konfliktu s oficiální verzí mongodb-org balíček. Pokud jste ho již nainstalovali mongodb ujistěte se, že jej odinstalujete.
Dále spusťte příkaz sudo apt-get install gnupg curl. Curl je nástroj pro stahování souborů z internetu a je potřebný k získání bezpečnostního klíče MongoDB. GnuPG používá Ubuntu k ověření autenticity software. Pokud GnuPG chybí, Ubuntu nemůže ověřit balíčky MongoDB.
Ověřte, že se vám v terminálu podařilo nainstalovat GnuPG a Curl. Pokud ano, mělo by to vypadat takto:
Import klíče GPG MongoDB
Správce balíčků Ubuntu, APT, používá klíče GPG k ověření balíčků před instalací. Bez tohoto klíče GPG Ubuntu neumožní přidání úložiště MongoDB. Chcete-li klíč přidat, zadejte do terminálu tento příkaz:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Pokud se vše podaří, výstup terminálu by měl vypadat takto:
Zjednodušeně řečeno, tento příkaz stáhne bezpečnostní podpis MongoDB, převede ho do formátu, kterému rozumí Ubuntu, a uloží ho do bezpečné složky systému. Tady je rozbor příkazu po částech:
- curl -fsSL URL stáhne oficiální klíč MongoDB
- –dearmor převede klíč z textového formátu do binární podoby, kterou porozumí Ubuntu
- -o /usr/share/keyrings/mongodb-server-8.0.gpg uloží binární soubor do složky, kde Ubuntu uchovává důvěryhodné klíče
Pokud přesně dodržíte všechny příkazy, veřejný klíč GPG se přidá bez problémů. Někteří uživatelé se ale setkají s problémy při stahování MongoDB kvůli neshodě klíče GPG. Chyby jako:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Se vyskytnout, když nebudete přesně následovat příkazy pro klíč GPG výše a místo toho použijete sudo apt-key protože moderní Ubuntu to nedoporučuje.
Přidejte úložiště MongoDB
Přidání úložiště MongoDB vytvoří soubor, který řekne Ubuntu, že balíčky MongoDB jsou dostupné na konkrétní internetové adrese. Vytvořte soubor seznamu v cestě /etc/apt/sources.list.d/mongodb-org-8.0.list tak, že do něj napíšete řádek úložiště pomocí echo … | sudo tee …
Tady se věci komplikují, protože různé verze Ubuntu vyžadují jinou variantu tohoto příkazu. Teď se podíváme, jak importovat soubor seznamu ve třech verzích Ubuntu, které jsme zmínili výše.
Ubuntu 24.04 (Noble)
Chcete-li vytvořit soubor seznamu na Ubuntu 24.04, jednoduše zadejte echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list v terminálu.
Vypadá to matoucně, ale nebojte se. Jakmile si příkaz rozložíme na části, bude to jasné.
- echo tiskne text
- /etc/apt/sources.list.d je složka, v níž Ubuntu uchovává definice softwarových zdrojů. Každý soubor s .list formát v adresáři Ubuntu odkazuje na konkrétní umístění, odkud se stahuje software
- Normální uživatel nemůže standardně zapisovat do systémových složek. tričko uděluje uživateli speciální oprávnění pro zápis do systémových souborů, a to při použití sudo
- vznešený je kódové jméno pro Ubuntu 24.04. Každá verze Ubuntu má podobné kódové jméno:
| Verze | Název kódu |
| 20.04 | Ohnisková |
| 22.04 | Jammy |
| 24.04 | Vznešený |
Pokud verze Ubuntu neodpovídá správnému příkazovému řádku, Ubuntu nezpozní úložiště MongoDB.
Ubuntu 22.04 (Jammy)
Přidání souboru seznamu do Ubuntu Jammy vypadá stejně, ale musíte zadat příkazový řádek a nahradit vznešený s jammyI don't see the English text to translate in your message. Could you please provide the UI label or phrase you'd like me to translate to Czech?
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Ujistěte se, že odpovídá vaší verzi Ubuntu, jinak to opět selže.
Ubuntu 20.04 (Focal)
Postupujte podle stejných kroků, ale místo vznešený or jammy, vložit focal:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Když je úložiště nastaveno, můžete pokračovat s instalací mongodb-org.
Obnovit databázi balíčků
Teď, když je úložiště Ubuntu rozpoznáno, musíte v něm znovu načíst databázi balíčků, aby od teď obsahovala i MongoDB. Zadejte níže uvedený příkaz:
sudo apt-get update
Tento příkaz zůstává stejný ve všech verzích Ubuntu. Pokud ho přeskočíte, Ubuntu nebude obsahovat MongoDB. Pokud příkaz funguje správně, výstup terminálu by měl být:
Teď, když jste obnovili databázi balíčků, je čas stáhnout balíčky MongoDB.
Instalace MongoDB Community Server
Existují různé verze MongoDB k instalaci, ale uživatelé obvykle preferují nejnovější stabilní verzi. Chcete-li nainstalovat nejnovější stabilní verzi, spusťte sudo apt-get install -y mongodb-org
Ubuntu si stáhl balíčky MongoDB, nainstaloval je, vytvořil uživatelský účet MongoDB a datový adresář, a registroval MongoDB jako systémovou službu. Nyní máme pokryto, jak stáhnout MongoDB do Ubuntu. Teď jej spustíme.
Jak spustit MongoDB
Aby se MongoDB spustil, musíte sdělit správci služeb Ubuntu, "systemd", aby MongoDB poznával jako službu na pozadí. To provedete zadáním následujícího příkazu v terminálu:
sudo systemctl start mongod
Pokud příkaz funguje správně, Ubuntu teď spustí MongoDB jako aplikaci na pozadí. Pokud ne, může se zobrazit chyba podobná Nepodařilo se spustit mongod.service.
K tomu může dojít kvůli několika běžným problémům:
- Chyba v konfiguračním souboru in /etc/mongod.conf (chyby odsazení YAML jsou časté)
- Konflikt portů (port 27017 je již obsazen)
- Problém s oprávněním v datových nebo logových adresářích (var/lib/mongodb nebo var/log/mongodb)
- Disk je plný or poškozený stav souborového systému
Tři příkazy k diagnostice problému
Je snadné říci, co by mohlo být špatně s vaší konfigurací, když MongoDB neběží, ale mnohem těžší je určit přesnou příčinu. Tři jednoduché způsoby, jak diagnostikovat, odkud by chyba mohla pocházet:
- Zkontrolujte stav služby: sudo systemctl status mongod –no-pager
- Zkontrolujte podrobné protokoly (nejdůležitější): sudo journalctl -u mongod –no-pager -n 100
- Zkontrolujte vlastní soubor protokolu MongoDB
Prosím vezměte na vědomí, že pokud je váš disk plný nebo jsou poškozeny systémové soubory, řešení bude spíše otázkou hardwaru než softwaru. Uživatelé budou muset koupit lepší vybavení pro nastavení svého serveru, aby mohli efektivně spustit MongoDB, pokud je jejich aktuální nastavení zastaralé.
Pokud si nemůžete dovolit koupit kompletní server, zvažte Cloudzy Ubuntu VPS pro bezproblémový provoz na vlastním privátním serveru s distribucí Ubuntu podle vašeho výběru. Přichází s 24/7 podpora a až 40Gbps rychlostí sítě díky jeho úložiště NVMe SSD a DDR5 RAM úložiště.
Navíc má minimální latenci, 99.95% provozudobá dostupnost a 14denní zárukou vrácení peněz. To není všechno, je také dostupný v 12 lokalitách po celém světě za dostupnou cenu.
Tři nejčastější řešení pro spuštění MongoDB
Neexistuje absolutní způsob, jak zároveň identifikovat přesný problém vašeho systému s MongoDB a vyřešit ho v jednom jednoduchém kroku. Zde jsou některá běžná řešení, která můžete vyzkoušet a snad rozběhnou váš MongoDB.
- Chyba odsazení konfigurace YAML. Předpokládejme, že jste upravili /etc/mongod.conf znovu zkontrolujte odsazení spuštěním sudo nano /etc/mongod.conf. Soubor YAML je citlivý na prázdné znaky, proto se ujistěte, že na každé úrovni jsou pouze dva mezery v /etc/mongod.conf.
- Port 27017 je obsazen. Pokud něco jiného používá port 27017, vypněte to nebo změňte port MongoDB v mongod.conf. Pokud si nejste jistí, co běží na portu 27017, můžete spustit sudo ss -lntp | grep 27017 vyzkoušet si to
- Problém s oprávněním v datovém adresáři. Někdy MongoDB nemá oprávnění spustit se ve vašem systému a proto vůbec neběží. Nejdřív spusťte sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, poté restartujte MongoDB pomocí sudo systemctl restart mongod
Podle Oficiální webové stránky MongoDB, dalším způsobem, jak obejít tento problém, je znovu načíst daemon pomocí sudo systemctl daemon-reload, a spusťte první příkaz sudo systemctl start mongod, znovu.
Pokud není mongod.service, instalace neumístila jednotku systemd, proto přeinstalujte mongodb-org balíček nastaven.
Když máte všechno to za sebou, můžete ověřit, zda se MongoDB spustil úspěšně pomocí sudo systemctl status mongod. Pokud terminál vypíše aktivní (spuštěno), je vše v pořádku. Existují však další konfigurace, které vám ulehčí práci.
Automatizace MongoDB
MongoDB se automaticky nespustí pokaždé, když zapnete server; budete muset některé z výše uvedených kroků opakovat. Volitelně můžete říci Ubuntu, aby spustil MongoDB po startu vašeho počítače.
Jednoduše spusťte sudo systemctl enable mongod v terminálu, což bude od teď instruovat váš systém, aby spustil MongoDB po každém restartu. Kromě toho můžete restartovat mongod proces vydáním příkazu sudo systemctl restart mongod. Navíc si mohou uživatelé přečíst výstup v souboru, aby zkontrolovali chyby nebo důležité zprávy:
/var/log/mongodb/mongod.log
Teď, když máte vše nastaveno, začneme s mongod.
Otevření MongoDB shellu
Aby uživatelé mohli komunikovat se svou databází, musí otevřít MongoDB shell příkazem mongosh. Představte si to jako vyhrazený příkazový řádek pro MongoDB nebo konzoli MySQL. Případně můžete s MongoDB pracovat přes grafické nástroje, například MongoDB ovladače. Chcete-li s ním ale pracovat z terminálu, mongosh je to řešení.
Váš MongoDB bude nyní plně funkční, ale měli byste zvážit další kroky, abyste ho zabezpečili.
Povolte ověření pro MongoDB
MongoDB nemá ve výchozím nastavení ochranu heslem, protože musíte mít již přístup k vytvoření uživatele. Tady je jednoduchý způsob, jak to nastavit
Vytvořit správce
Nejdřív se přepněte na admin databázi:
use admin
Pak vytvořte uživatele s db.createUser({…}). Vyplňte si vlastní
- Uživatelské jméno
- Heslo
- Role
Pro roli zadejte raději root což znamená úplnou kontrolu nebo oprávnění správce.
Povolit ověřování
Teď, když máme vlastního uživatele, musíme upravit /etc/mongod.conf soubor. Ten určuje, jak se MongoDB chová. Mějte na paměti, že po úpravě souboru musíte vždy restartovat mongod službu následujícím příkazem: sudo systemctl restart mongod. Co zde musíme změnit, je jeden parametr nazvaný authorization, který vypadá takto:
security:
authorization:
Abyste dokončili proces ověření, stačí změnit hodnotu authorization takto:
security:
authorization: enabled
Od teď vyžaduje MongoDB přihlášení, takže je vaše ověření hotovo. Teď se pojďme podívat na další nastavení, které plně využívá možnosti MongoDB.
Otevřete si Firewall
Jak jsme zmínili, MongoDB běží na portu 27017. Protože firewall po výchozím nastavení bloků porty, musíte mu říci, aby umožnil aplikacím běžet na portu 27017. Stačí zadat příkaz:
ufw allow from YOUR_IP to any port 27017
Případně můžete také spustit příkaz ufw allow 27017, ale pozor – spuštěním tohoto příkazu umožníte přístup k portu celému internetu. Nejbezpečnější je držet se první možnosti, která povoluje přístup k portu pouze z vaší IP adresy.
Při spuštění MongoDB se můžete setkat s problémy, například se vzdáleným přístupem. Čtěte dál, jak to opravit.
Problém se vzdáleným přístupem
MongoDB se spouští s bindIp. bindIp omezuje MongoDB na 127.0.0.1, což umožňuje pouze místní připojení. Pokud se chcete připojit k serveru MongoDB odjinud, nebude vám přístup povolen, protože MongoDB je ve výchozím nastavení nakonfigurován tak, aby povoloval připojení pouze z místní sítě.
Přejděte na /etc/mongod.conf, a uvidíte tři řádky jako tyto:
net:
port: 27017
bindIp: 127.0.0.1
Pokud chcete povolit vzdálená připojení k vašemu mongod uživateli, změňte výše uvedené hodnoty takto:
net:
port: 27017
bindIp: 0.0.0.0
Poté restartujte váš mongod služba s sudo systemctl restart mongod , stejně jako po každé úpravě souboru.
Nyní jste udělili vašemu mongod službě oprávnění přijímat vzdálená připojení. Ale pozor – tím exponujete svou databázi celému internetu, pokud jste ještě nenastavili heslo pro vašeho mongod uživatele. Existuje mnoho botů, které neustále prohledávají otevřené porty MongoDB, proto se ujistěte, že váš uživatel mongod má nastavené heslo.
Shrnutí
Gratulujeme, nyní jste udělali vše potřebné k vytvoření optimalizované služby MongoDB pro váš systém Ubuntu. Zde je také přehled všech kroků, které jsme v tomto článku probrali.
| Příkaz | Co dělá |
| apt aktualizace | Obnovit seznam软件 |
| apt install | Nainstalovat software |
| curl | Stáhnout soubor |
| gpg | Spravovat šifrovací klíče |
| echo | Tisk textu |
| tričko | Psát do chráněného souboru |
| systemctl start | Spustit službu |
| systemctl enable | Spustit při startu |
| systemctl stav | Zkontrolovat službu |
| mongosh | Vstoupit do prostředí MongoDB |
| Upravit /etc/mongod.conf | Povolit ověření |
| ufw | Spravovat firewall |
| bindIp | Povolit vzdálený přístup |
To by vám mělo pomoci lépe pochopit celý proces. Pokud je pro vás nastavení MongoDB na vlastní pěst příliš náročné, spusťte si MongoDB VPS pro váš vlastní privátní server Ubuntu 24.04 LTS s předinstalovanou MongoDB.
Obsahuje 99.95% uptime, 24/7 podpora a 14denní záruka vrácení peněz. Navíc podporuje až 40 Gbps šířky pásma díky DDR5 RAM a úložiště NVMe SSD úložiště. Nemusíte se vůbec bát, kde bydlíte, protože je k dispozici také v 12 lokalitách po celém světě za přijatelnou cenu.
Nyní jste si konečně povedli nastavit svou vlastní výkonnou službu MongoDB vybavenou všemi konfiguracemi potřebnými pro provozní úlohy a firmy.