Takže jste se rozhodli použít MongoDB, skvělé alternative to MariaDB pro vytvoření aplikace MERN stack, analytické platformy nebo jakéhokoli systému založeného na dokumentech, ale narazili na zeď starými dobrými příkazovými řádky Linuxu a nesčetnými chybami v terminálu.
Žádný strach, protože tato příručka poskytuje vše, co potřebujete vědět od A do Z k instalaci MongoDB na Ubuntu.
Používá MongoDB X.Y.Z verzování. 8.0 je a hlavní série vydání a 8.2 je a menší uvolnění v rámci tohoto cyklu 8.0. Menší verze přidávají funkce ve stejném hlavním cyklu a počínaje verzí 8.0 jsou také nabízeny pro místní instalace pro specifické 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.
Předpoklady GnuPG a Curl
Před instalací oficial mongodb-org balíček, Ubuntu vyžaduje dva předpoklady: GnuPG a Kučera. Tyto nástroje dávají Ubuntu oprávnění ke stažení MongoDB, protože Ubuntu je vlastní mongodb balíček není spravován společností MongoDB Inc. a je v konfliktu s oficiálním mongodb-org balík. Pokud jste již nainstalovali mongodb nezapomeňte jej odinstalovat.
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řeba k načtení bezpečnostního klíče MongoDB. GnuPG je to, co Ubuntu používá k ověření pravosti softwaru. Pokud GnuPG chybí, Ubuntu nedokáže ověřit balíčky MongoDB.
Ujistěte se, že váš terminál úspěšně nainstaloval GnuPG a Curl. Pokud ano, mělo by to vypadat takto:
Importování klíče MongoDB GPG
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žňuje přidávat úložiště MongoDB. Zadejte následující příkaz do terminálu a přidejte klíč:
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 to funguje, výstup vašeho terminálu by měl vypadat takto:
Jednoduše řečeno, tento příkaz stáhne bezpečnostní podpis MongoDB, převede jej do formátu, který Ubuntu dokáže přečíst, a uloží jej do zabezpečené systémové složky. Zde je rozdělení příkazového řádku po částech:
- curl -fsSL URL stáhne oficiální klíč MongoDB
- – drahá převede klíč z textového formátu na binární, aby mu Ubuntu porozumělo
- -o /usr/share/keyrings/mongodb-server-8.0.gpg uloží binární soubor do složky, kde Ubuntu ukládá důvěryhodné klíče
Pokud dokonale sladíte každý příkazový řádek, veřejný klíč GPG bude přidán bez problémů. Někteří uživatelé se však při stahování MongoDB setkávají s problémy kvůli nesprávnému klíči GPG. Chyby jako:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Stává se to, když se dříve neřídíte přesnými příkazy kláves GPG a místo toho používáte sudo apt-key protože moderní Ubuntu to nedoporučuje.
Přidejte úložiště MongoDB
Přidáním úložiště MongoDB se vytvoří soubor, který Ubuntu řekne, že balíčky MongoDB jsou aktivní na konkrétní internetové adrese. Vytvořte soubor seznamu na adrese /etc/apt/sources.list.d/mongodb-org-8.0.list zapsáním řádku úložiště do něj pomocí echo … | sudo tee…
Zde je to složitější, protože různé verze Ubuntu vyžadují různé varianty tohoto příkazu. Nyní prozkoumáme, jak importovat soubor seznamu na tři výše uvedené verze Ubuntu.
Ubuntu 24.04 (Noble)
Chcete-li vytvořit soubor seznamu na Ubuntu 24.04, jednoduše řečeno echo “deb [ arch=amd64,arm64 signature-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 na vašem terminálu.
Může to vypadat zmateně, ale nezoufejte. Jakmile příkaz rozdělíme na sekce, bude křišťálově čistý.
- echo vytiskne text
- /etc/apt/sources.list.d je složka, do které Ubuntu ukládá definice zdrojů softwaru. Každý soubor s .seznam formát ve složce ukazuje Ubuntu na konkrétní umístění, ze kterého lze stáhnout software
- Ve výchozím nastavení nemůžete jako běžný uživatel nic zapisovat do systémových složek. tričko dává uživateli zvláštní oprávnění zapisovat text do systémových souborů při používání sudo
- ušlechtilý je kódové označení pro Ubuntu 24.04. Každá verze Ubuntu má kódové označení jako:
| Verze | kódové jméno |
| 20.04 | Ohniskové |
| 22.04 | Jammy |
| 24.04 | Ušlechtilý |
Pokud svou verzi Ubuntu neshodujete se správným příkazovým řádkem, Ubuntu nerozpozná úložiště MongoDB.
Ubuntu 22.04 (Jammy)
Přidání souboru seznamu do Ubuntu Jammy vypadá stejně, ale při nahrazování musíte zadat příkazový řádek ušlechtilý s jammy, takhle:
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 je to ta, která odpovídá vaší verzi Ubuntu, jinak se znovu nezdaří.
Ubuntu 20.04 (ohnisková)
Postupujte podle stejných kroků zde, ale místo toho ušlechtilý or jammy, vložit ohniskové:
echo “deb [ arch=amd64,arm64 signature-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
Nyní s nastavením úložiště můžete přistoupit k instalaci mongodb-org.
Aktualizujte databázi balíčků
Nyní, když je úložiště rozpoznáno Ubuntu, musíte v něm znovu načíst databázi balíčků, takže od této chvíle zahrnuje také MongoDB. Zadejte příkaz uvedený níže:
sudo apt-get update
Tento příkaz zůstává stejný ve všech verzích Ubuntu, a pokud je přeskočen, Ubuntu nebude zahrnovat MongoDB. Pokud příkaz dělá svou práci, výstup vašeho terminálu by měl být:
Nyní, po opětovném načtení databáze balíčků, je čas stáhnout balíčky MongoDB.
Nainstalujte komunitní server MongoDB
Existují různé verze MongoDB k instalaci, ale uživatelé mají tendenci používat nejnovější stabilní verzi, protože je to výhodnější. Chcete-li nainstalovat nejnovější stabilní verzi, spusťte sudo apt-get install -y mongodb-org
Ubuntu nyní stáhlo balíčky MongoDB, nainstalovalo je, vytvořilo uživatelský účet MongoDB a datový adresář a zaregistrovalo MongoDB jako systémovou službu. Nyní jsme se zabývali tím, jak stáhnout MongoDB na Ubuntu. Nyní to rozjedeme.
Jak spustit MongoDB
Nyní, abychom mohli spustit MongoDB, musíme říci správci služeb Ubuntu „systemd“, aby rozpoznal MongoDB jako službu na pozadí, a k tomu musíte do terminálu zadat následující příkaz:
sudo systemctl start mongod
Pokud příkaz udělá svou práci, Ubuntu nyní otevře MongoDB jako aplikaci na pozadí. Pokud však příkaz nedělá svou práci, může se zobrazit chyba podobná té Spuštění mongod.service se nezdařilo.
K tomu může dojít v důsledku několika běžných problémů:
- Chyba konfiguračního souboru in /etc/mongod.conf (Chyby v odsazení YAML jsou běžné)
- Konflikt portů (port 27017 je již obsazen)
- Problém s povolením v adresářích dat nebo protokolů (var/lib/mongodb nebo var/log/mongodb)
- Disk plný or poškozený stav souborového systému
Tři příkazy pro diagnostiku problému
Je snadné říci, co může být s vaší konfigurací špatně, že MongoDB neběží, ale je mnohem těžší určit přesnou příčinu. Tři jednoduché způsoby, jak diagnostikovat, odkud může chyba pocházet, jsou:
- 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
Upozorňujeme však, že pokud je váš disk plný nebo jsou poškozeny systémové soubory, bude se oprava týkat spíše hardwaru než softwaru. Uživatelé si možná budou muset koupit lepší vybavení pro nastavení svého serveru, aby mohli efektivně provozovat MongoDB, pokud je jejich aktuální nastavení zastaralé.
Pokud nákup plnohodnotného serveru není ve vašem rozpočtu, zvažte možnost vyzkoušet Cloudzy's Ubuntu VPS pro čistý zážitek na vašem vlastním soukromém serveru s distribucí Ubuntu podle vašich představ. Přichází s 24/7 podpora a až 40Gbps rychlost sítě díky jeho NVMe SSD a DDR5 RAM skladování.
Navíc má minimální latenci, 99.95% doba provozuschopnosti a a 14denní záruka vrácení peněz. Nejen to, ale je také k dispozici v 12 místech po celém světě za dostupnou cenu.
Tři nejčastější opravy pro spuštění MongoDB
Neexistuje žádný absolutní způsob, jak rozpoznat přesný problém vašeho systému s MongoDB a opravit jej jedním snadným krokem. Zde jsou některé běžné opravy, které můžete použít, aby se váš MongoDB mohl spustit.
- Chyba odsazení konfigurace YAML. Předpokládejme, že jste upravili /etc/mongod.conf znovu zkontrolujte odsazení výzvou sudo nano /etc/mongod.conf. Soubor YAML je velmi citlivý na mezery, takže se ujistěte, že v každé úrovni jsou pouze dvě mezery /etc/mongod.conf.
- Obsazený port 27017. Pokud port 27017 používá něco jiného, vypněte jej nebo změňte port MongoDB mongod.conf. Pokud si nejste jisti cokoli, co běží na portu 27017, klidně to spusťte sudo ss -lntp | grep 27017 zkontrolovat to
- Problém s oprávněním v datovém adresáři. Někdy MongoDB postrádá oprávnění ke spuštění ve vašem systému, a proto se vůbec nespustí. První běh sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodba poté restartujte MongoDB pomocí sudo systemctl restart mongod
Podle Oficiální web MongoDB, další způsob, jak tento problém obejít, je znovu načíst démona pomocí sudo systemctl daemon-reloada spusťte první příkaz, sudo systemctl start mongod, znovu.
Pokud neexistuje mongod.service, instalace neumístila systémovou jednotku, takže ji nainstalujte znovu mongodb-org sada balíčku.
Se vším, co bylo řečeno, můžete ověřit, zda MongoDB úspěšně začal sudo systemctl status mongod. Pokud terminál říká aktivní (běžící), můžete jít. Stále však existují některé další konfigurace, díky nimž bude váš zážitek mnohem plynulejší.
Udělejte z MongoDB automatizovaný
MongoDB se automaticky neotevře při každém zapnutí serveru; budete muset pokaždé opakovat některé z uvedených kroků. Volitelně můžete Ubuntu říct, aby po spuštění na plochu spustil MongoDB.
Jednoduše běžte sudo systemctl povolit mongod na vašem terminálu, který od nynějška řekne vašemu systému, aby spustil MongoDB po každém restartu. Navíc můžete restartovat mongod proces vydáním příkazu sudo systemctl restart mongod. Kromě toho může být nutné, aby uživatelé postupovali podle tohoto procesu pro případné chyby nebo důležité zprávy kontrolou výstupu v souboru:
/var/log/mongodb/mongod.log
Nyní, když je vše nastaveno, začněme používat vašeho mongoda.
Otevření prostředí MongoDB Shell
Aby uživatelé mohli pracovat se svou databází, musí zadáním příkazu otevřít prostředí MongoDB mongosh. Představte si to jako vyhrazený terminál příkazového řádku pro MongoDB nebo konzoli MySQL. Alternativně můžete pracovat s MongoDB pomocí nástrojů GUI, jako jsou ovladače MongoDB. Ale pokud s ním chcete komunikovat z terminálu, mongosh je vytvořen, aby se to stalo.
Váš MongoDB bude nyní plně funkční, ale musíte zvážit několik dalších kroků, abyste jej zajistili.
Proveďte MongoDB Authenticated
MongoDB ve výchozím nastavení nemá ochranu heslem, protože k vytvoření uživatele již musíte mít přístup. Zde je jednoduchý způsob, jak toho dosáhnout
Vytvořte administrátora
Nejprve se musíte přepnout do databáze správce pomocí:
use admin
Poté vytvořte uživatele s db.createUser({…}). Vyplňte ji svým
- Uživatelské jméno
- Heslo
- Role
Pro roli, nejlépe typ vykořenit což znamená plnou kontrolu nebo admin.
Povolit ověřování
Nyní, když máme nastaveného vlastního uživatele, musíme upravit soubor /etc/mongod.conf soubor. Je to proto, že tento soubor řídí, jak se MongoDB chová. Ale mějte na paměti, že úpravou souboru musíte vždy restartovat mongod servis poté s sudo systemctl restart mongod. Zde musíme změnit jeden parametr zvaný autorizace, který vypadá takto:
security:
authorization:
Chcete-li dokončit proces ověřování, jednoduše změňte hodnotu autorizace takto:
security:
authorization: enabled
Od této chvíle MongoDB vyžaduje přihlášení, takže vaše autentizace je dokončena. Pojďme nyní k další konfiguraci, která plně využívá MongoDB.
Otevřete svůj firewall
Jak již bylo zmíněno dříve, MongoDB běží na portu 27017. Protože brány firewall blokují porty ve výchozím nastavení, musíte své bráně firewall sdělit, aby povolila spouštění aplikací na 27017. Chcete-li to provést, jednoduše zadejte příkaz:
ufw allow from YOUR_IP to any port 27017
Případně můžete také vydat příkaz ufw povolit 27017, ale buďte opatrní, protože spuštění umožní celému internetu přístup k tomuto portu. Nejbezpečnější může být použít první možnost, protože umožňuje provozu přistupovat k portu pouze z vaší IP adresy.
Uživatelé mohou stále čelit problémům při spuštění MongoDB, jako je problém vzdáleného přístupu. Zůstaňte kolem, abyste zjistili, jak to opravit.
Problém se vzdáleným přístupem
MongoDB se spustí s bindIp. bindIp omezuje MongoDB na 127.0.0.1, umožňující pouze místní připojení. Pokud byste se tedy připojili ke svému serveru MongoDB odjinud, nebyl by vám povolen přístup, protože MongoDB je ve výchozím nastavení nakonfigurováno tak, aby umožňovalo pouze připojení na místě, pokud není nakonfigurováno jinak.
Znovu, vydejte se /etc/mongod.confa uvidíte tři řádky, jako je tento:
net:
port: 27017
bindIp: 127.0.0.1
Pokud chcete povolit vzdálená připojení k vašemu mongod uživatel, změňte výše uvedené hodnoty takto:
net:
port: 27017
bindIp: 0.0.0.0
Poté restartujte svůj mongod služba s sudo systemctl restart mongod jako u každé jiné úpravy, kterou v souboru provedete.
Nyní jste udělili své mongod oprávnění služby přijímat vzdálená připojení. Ale buďte opatrní, protože tímto způsobem vystavíte svou databázi celému internetu, pokud jste ještě neověřili své mongod uživatel. Existuje mnoho robotů, kteří neustále vyhledávají otevřené porty MongoDB, takže se vždy ujistěte, že váš uživatel mongod má heslo.
Shrnutí velkého obrázku
Gratulujeme, nyní jste udělali vše pro vytvoření optimalizované služby MongoDB pro váš systém Ubuntu. Zde je také mentální mapa ke sledování každého kroku uvedeného v tomto článku.
| Příkaz | Co to dělá |
| apt aktualizace | Aktualizujte seznam softwaru |
| apt install | Nainstalujte software |
| kučera | Stáhnout soubor |
| gpg | Správa šifrovacích klíčů |
| echo | Tisk textu |
| tričko | Zápis do chráněného souboru |
| start systemctl | Spusťte službu |
| povolit systemctl | Začněte při startu |
| stav systemctl | Zkontrolujte servis |
| mongosh | Vstupte do prostředí MongoDB |
| Upravit /etc/mongod.conf | Povolit ověřování |
| ufw | Spravovat firewall |
| bindIp | Povolit vzdálený přístup |
To by vám mělo pomoci lépe porozumět celému procesu. Ale pokud je na vás samotné nastavení MongoDB příliš mnoho, nezapomeňte Cloudzy’s roztočit MongoDB VPS pro váš vlastní soukromý server Ubuntu 24.04 LTS s předinstalovaným MongoDB.
Přichází s 99.95% doba provozuschopnosti, 24/7 podpora, a 14denní záruka vrácení peněz. Kromě toho podporuje až 40 Gbps šířky pásma díky jeho DDR5 RAM a NVMe SSD skladování. Nebojte se ani o to, kde bydlíte, protože je k dispozici také v 12 místech po celém světě za dostupnou cenu.
Ale se vším, co bylo řečeno, se vám konečně podařilo nastavit vlastní schopnou službu MongoDB vybavenou každou konfigurací pro podporu pracovních úloh a podniků na produkční úrovni.