MongoDB je bezplatná a open-source databáze dokumentů. Patří do rodiny databází s názvem NoSQL, které se liší od tradičních tabulkových SQL databází, jako je MySQL a PostgreSQL.
V MongoDB jsou data uložena ve flexibilních dokumentech podobných JSON, kde se pole mohou lišit dokument od dokumentu. Nevyžaduje předdefinované schéma a datovou strukturu lze v průběhu času měnit.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat nejnovější verzi MongoDB Community Edition na systémech Debian 9 z oficiálních repozitářů MongoDB.
Předpoklady #
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo.
Instalace MongoDB #
V době psaní tohoto článku je nejnovější verze MongoDB verze 4.0.
Než budete pokračovat v procesu instalace, přejděte do sekce Instalace na Debianu v dokumentaci MongoDB a zkontrolujte, zda není k dispozici nové vydání.
Následující kroky popisují, jak nainstalovat MongoDB na systém Debian:
-
Nejprve nainstalujte balíčky potřebné pro přidání nového úložiště:
sudo apt install software-properties-common dirmngr
-
Přidejte klíč MongoDB GPG do systému pomocí následujícího příkazu:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
-
Jakmile je klíč importován, pro přidání úložiště MongoDB spusťte:
sudo add-apt-repository 'deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main'
Pokud chcete nainstalovat starší verzi MongoDB, nahraďte
4.0
s preferovanou verzí. -
Aktualizujte seznam balíčků:
sudo apt update
-
Nainstalujte
mongodb-org
meta-balíček s:sudo apt install mongodb-org
Následující balíčky budou nainstalovány na váš systém jako součást
mongodb-org
balíček:mongodb-org-server
-mongod
démon a odpovídající init skripty a konfigurace.mongodb-org-mongos
–mongos
démon.mongodb-org-shell
- Mongo shell je interaktivní JavaScriptové rozhraní pro MongoDB. Používá se k provádění administrativních úkolů prostřednictvím příkazového řádku.mongodb-org-tools
- Obsahuje několik nástrojů MongoDB pro import a export dat, statistiky a další nástroje.
-
Spusťte démona MongoDB a povolte jeho spuštění při spouštění zadáním:
sudo systemctl start mongod
sudo systemctl enable mongod
-
Abychom ověřili, zda byla instalace úspěšně dokončena, připojíme se k databázovému serveru MongoDB pomocí
mongo
nástroj a vytiskněte stav připojení:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Výstup bude vypadat takto:
MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.2 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Hodnota
1
prook
pole označuje úspěch.
Konfigurace MongoDB #
MongoDB používá konfigurační soubor ve formátu YAML, /etc/mongod.conf
. Instanci MongoDB můžete nakonfigurovat úpravou tohoto souboru.
Výchozí nastavení konfigurace je dostatečné pro většinu uživatelů. Pro produkční prostředí se však doporučuje zrušit komentář v sekci zabezpečení a povolit autorizaci, jak je uvedeno níže:
/etc/mongod.confsecurity:
authorization: enabled
authorization
umožňuje řízení přístupu založeného na rolích (RBAC), které reguluje přístup uživatelů k databázovým zdrojům a operacím. Pokud je tato možnost zakázána, každý uživatel bude mít přístup ke všem databázím a může provádět jakoukoli akci.
Po provedení změn v konfiguračním souboru MongoDB restartujte službu mongod pomocí:
sudo systemctl restart mongod
Další informace o možnostech konfigurace dostupných v MongoDB 4.0 naleznete na stránce Dokumentace možností konfiguračního souboru.
Vytváření administrativního uživatele MongoDB #
Pokud jste povolili ověřování MongoDB, vytvořte administrativního uživatele MongoDB, který bude použit pro přístup a správu instance MongoDB.
Nejprve otevřete mongo shell pomocí:
mongo
Jakmile jste v prostředí MongoDB, zadejte následující příkaz pro připojení k admin
databáze:
use admin
switched to db admin
Chcete-li vytvořit nového uživatele s názvem mongoAdmin
, zadejte následující příkaz pomocí userAdminAnyDatabase
role:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Administrativního uživatele MongoDB můžete pojmenovat, jak chcete. Opusťte mongo shell pomocí:
quit()
Chcete-li otestovat změny, otevřete mongo shell pomocí administrátora, kterého jste dříve vytvořili:
mongo -u mongoAdmin -p --authenticationDatabase admin
Po zobrazení výzvy zadejte heslo. Jakmile jste v prostředí MongoDB, připojte se k admin
databáze:
use admin
switched to db admin
Nyní vytiskněte uživatele pomocí:
show users
{
"_id" : "admin.mongoAdmin",
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
Můžete se také pokusit o přístup k mongo shellu bez jakýchkoli argumentů (stačí napsat mongo
) a zjistěte, zda můžete vypsat seznam uživatelů pomocí stejných příkazů jako výše.