MongoDB je databáze NoSQL, která nabízí vysoký výkon, vysokou dostupnost a automatické škálování databáze na podnikové úrovni. MongoDB je databáze NoSQL, takže k vkládání a načítání dat nemůžete použít SQL (Structured Query Language) a neukládá data do tabulek jako MySQL nebo Postgres. Data jsou uložena ve struktuře „dokumentu“ ve formátu JSON (v MongoDB nazývaném BSON). MongoDB byl představen v roce 2009 a v současnosti je vyvíjen společností MongoDB Inc.
MongoDB nabízí pouze balíčky pro 64bitové verze Ubuntu LTS (dlouhodobá podpora). Například 14,04 LTS (důvěryhodný), 16,04 LTS (xenial), 18,04 LTS (bionic) a tak dále.
V tomto tutoriálu nainstaluji MongoDB 4.0 na Ubuntu 18.04 LTS.
Předpoklady
- Ubuntu Server 18.04 – 64 bit
- Oprávnění uživatele root
Co budeme dělat v tomto tutoriálu:
- Nainstalujte MongoDB
- Nakonfigurujte MongoDB
- Závěr
Instalovat MongoDB na Ubuntu 18.04 LTS
Krok 1 – Import veřejného klíče
GPG klíče distributora softwaru jsou vyžadovány správcem balíčků Ubuntu apt (Advanced Package Tool), aby byla zajištěna konzistence a autentičnost balíčku. Provedením tohoto příkazu importujete klíče MongoDB na váš server.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4
Krok 2 – Vytvořte soubor zdrojového seznamu MongoDB
Vytvořte soubor seznamu MongoDB v /etc/apt/sources.list.d/ pomocí tohoto příkazu:
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Krok 3 – Aktualizace úložiště
aktualizujte úložiště pomocí příkazu apt:
sudo apt-get update
Krok 4 – Instalace MongoDB
Nyní můžete nainstalovat MongoDB zadáním tohoto příkazu:
sudo apt-get install -y mongodb-org
Instalační program MongoDB apt vytvořil soubor mongod.service pro Systemd automaticky, takže jej již není nutné vytvářet ručně.
Spusťte MongoDB a přidejte jej jako službu, která se má spustit při spouštění:
sudo systemctl spustit mongod
sudo systemctl povolit mongod
Nyní zkontrolujte, zda byl MongoDB spuštěn na portu 27017 pomocí příkazu netstat.
sudo netstat -plntu
Konfigurace uživatelského jména a hesla MongoDB
Když jsou nainstalovány balíčky MongoDB, můžete nakonfigurovat uživatelské jméno a heslo pro databázový server:
Krok 1 – Otevřete mongo shell
Než nastavíte uživatelské jméno a heslo pro MongoDB, musíte na svém serveru otevřít shell MongoDB. Můžete se přihlásit zadáním:
mongo
Pokud se zobrazí chyba Selhala globální inicializace:BadValue Neplatné nebo není nastaveno žádné uživatelské národní prostředí. Ujistěte se, že jsou proměnné prostředí LANG a/nebo LC_* správně nastaveny, zkuste příkaz:
export LC_ALL=C
mongo
Krok 2 – Přepnutí na správce databáze
Jakmile jste v prostředí MongoDB, přepněte se do databáze s názvem admin :
use admin
Krok 3 – Vytvoření uživatele root
Vytvořte uživatele root pomocí tohoto příkazu:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Popis: Vytvořte si uživatele admin s heslem admin123 a mějte oprávnění/roli jako root a databáze je admin .
Nyní zadejte exit pro ukončení prostředí MongoDB.
exit
A jste zpět v prostředí Linuxu.
Krok 4 – Povolte ověřování MongoDB
Pomocí editoru upravte soubor služby mongodb '/lib/systemd/system/mongod.service'.
sudo nano /lib/systemd/system/mongod.service
Na stránce 'ExecStart ' řádek 9, přidejte novou možnost '--auth '.
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
Uložte soubor služby a ukončete nano.
Znovu načtěte službu systemd:
sudo systemctl daemon-reload
Krok 5 – Restartujte MongoDB a zkuste se připojit
Nyní restartujte MongoDB a připojte se k vytvořenému uživateli.
sudo service mongod restart
a připojte se k prostředí MongoDB pomocí tohoto příkazu:
mongo -u admin -p admin123 --authenticationDatabase admin
a výstup uvidíte takto:
Povolení externího přístupu a konfigurace brány UFW Firewall
UFW je výchozí firewall v Ubuntu. V této kapitole ukážu, jak nakonfigurovat UFW tak, aby umožňoval externí přístup k MongoDB.
Zkontrolujte stav UFW
sudo ufw status
Když je výsledek:
Status: inactive
Povolte UFW tímto příkazem a nejprve otevřete port SSH, pokud je připojen pomocí SSH:
sudo ufw allow ssh
sudo ufw enable
než budete pokračovat dalšími kroky.
Z bezpečnostních důvodů byste měli povolit přístup k portu MongoDB 27017 pouze z IP adres, které potřebují přístup k databázi. Ve výchozím nastavení má localhost vždy přístup, takže není třeba otevírat port MongoDB pro IP 127.0.0.1.
Syntaxe brány firewall UFW
sudo ufw allow from <target> to <destination> port <port number>
Otevřít port MongoDB v UFW
Chcete-li povolit přístup z externí IP 192.168.1.10 do MongoDB, použijte tento příkaz:
sudo ufw allow from 192.168.1.10 to any port 27017
Nahraďte IP adresu ve výše uvedeném příkazu externí IP, které chcete povolit přístup k MongoDB.
Pokud chcete otevřít port MongoDB pro jakoukoli IP, např. v případě, že jej spustíte v místní síti a všechny systémy v této síti budou mít přístup k MongoDB, použijte tento příkaz:
sudo ufw allow 27017
Zkontrolujte stav brány firewall UFW pomocí tohoto příkazu:
sudo ufw status
MongoDB standardně naslouchá localhost, aby byla databáze přístupná zvenčí, musíme ji překonfigurovat, aby naslouchala i na IP adrese serveru.
Otevřete soubor mongod.conf v nano editoru:
sudo nano /etc/mongod.conf
a přidejte IP adresu serveru do řádku bind_ip takto:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192,168.1.100
Nahraďte 192.168.1.100 IP svého serveru a poté restartujte MongoDB, aby se změny aplikovaly.
sudo service mongod restart
Nyní můžete přistupovat k databázovému serveru MongoDB přes síť.
Obrázek virtuálního počítače
Tento tutoriál je k dispozici jako virtuální stroj připravený k použití ve formátu OVA / OVF pro předplatitele Howtoforge. Formát VM je kompatibilní s VMWare a Virtualbox a dalšími nástroji, které dokážou importovat formát ova nebo ovf. Odkaz ke stažení najdete v pravém menu nahoře. Kliknutím na název souboru zahájíte stahování.
Přihlašovací údaje virtuálního počítače jsou:
Přihlášení SSH
Uživatelské jméno: administrator
Heslo:howtoforge
Uživatel správce má oprávnění sudo.
Po prvním spuštění změňte hesla.
Virtuální počítač je nakonfigurován pro statickou IP 192.168.1.100. Návod, jak změnit statickou IP, naleznete zde.
Závěr
MongoDB je známá NoSQL databáze, která nabízí vysoký výkon, vysokou dostupnost a automatické škálování. Liší se od RDBMS, jako je MySQL, PostgreSQL a SQLite, protože nepoužívá SQL k nastavení a načítání dat. MongoDB ukládá data v „dokumentech“ nazvaných BSON (binární reprezentace JSON s dalšími informacemi). MongoDB je k dispozici pouze pro 64bitové vydání Ubuntu s dlouhodobou podporou.