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 databází SQL, 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.
Tento tutoriál popisuje, jak nainstalovat a nakonfigurovat MongoDB Community Edition na Ubuntu 20.04.
Standardní úložiště Ubuntu obsahuje zastaralou verzi MongoDB. Instalace nejnovější MongoDB na Ubuntu je poměrně jednoduchá. Povolíme úložiště MongoDB, importujeme klíč GPG úložiště a nainstalujeme server MongoDB.
Instalace MongoDB na Ubuntu 20.04 #
Chcete-li nainstalovat MongoDB na Ubuntu, proveďte následující kroky jako uživatel root nebo uživatel s oprávněními sudo:
-
Nainstalujte závislosti potřebné k přidání nového úložiště přes HTTPS:
sudo apt update
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
-
Importujte klíč GPG úložiště a přidejte úložiště MongoDB pomocí:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'
V době psaní tohoto článku je nejnovější verze MongoDB verze 4.4. Chcete-li nainstalovat jinou verzi, nahraďte
4.4
s vaší preferovanou verzí. -
Jakmile je úložiště povoleno, nainstalujte
mongodb-org
meta-balíček zadáním:sudo apt install mongodb-org
Na váš systém budou nainstalovány následující balíčky:
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, interaktivní rozhraní JavaScriptu 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 enable --now mongod
-
Chcete-li ověřit, zda byla instalace úspěšně dokončena, připojte se k databázovému serveru MongoDB pomocí
mongo
a vytiskněte stav připojení:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Výstup bude vypadat nějak takto:
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Hodnota
1
prook
pole označuje úspěch.
Konfigurace MongoDB #
Konfigurační soubor MongoDB se jmenuje mongod.conf
a je umístěn v /etc
adresář. Soubor je ve formátu YAML.
Výchozí nastavení konfigurace je ve většině případů dostačující. Pro produkční prostředí však doporučujeme zrušit komentář v sekci zabezpečení a povolit autorizaci, jak je uvedeno níže:
sudo nano /etc/mongod.conf
/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.
Při úpravě konfiguračního souboru MongoDB restartujte službu mongod, aby se změny projevily:
sudo systemctl restart mongod
Další informace o možnostech konfigurace dostupných v MongoDB 4.4 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, budete muset vytvořit administrátora, který bude mít přístup k instanci MongoDB a bude ji moci spravovat.
Přístup k mongo shellu:
mongo
Zevnitř prostředí MongoDB zadejte následující příkaz pro připojení k admin
databáze:
use admin
switched to db admin
Spuštěním následujícího příkazu vytvořte nového uživatele s názvem mongoAdmin
, s heslem changeMe
a userAdminAnyDatabase
role:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Nezapomeňte nastavit bezpečnější heslo. Administrativního uživatele MongoDB můžete pojmenovat, jak chcete. Po dokončení ukončete 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
use admin
switched to db admin
Spusťte show users
a měli byste vidět informace o nově vytvořeném uživateli:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),
"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 zobrazit seznam uživatelů pomocí stejných příkazů jako výše.