MongoDB est une base de données de documents gratuite et open-source. Il appartient à une famille de bases de données appelée NoSQL, qui est différente des bases de données SQL traditionnelles basées sur des tables comme MySQL et PostgreSQL.
Dans MongoDB, les données sont stockées dans des documents flexibles de type JSON où les champs peuvent varier d'un document à l'autre. Il ne nécessite pas de schéma prédéfini et la structure des données peut être modifiée au fil du temps.
Ce tutoriel décrit comment installer et configurer MongoDB Community Edition sur Ubuntu 20.04.
Les référentiels Ubuntu standard incluent une version obsolète de MongoDB. L'installation du dernier MongoDB sur Ubuntu est assez simple. Nous allons activer le référentiel MongoDB, importer la clé GPG du référentiel et installer le serveur MongoDB.
Installer MongoDB sur Ubuntu 20.04 #
Effectuez les étapes suivantes en tant qu'utilisateur root ou utilisateur avec les privilèges sudo pour installer MongoDB sur Ubuntu :
-
Installez les dépendances nécessaires pour ajouter un nouveau référentiel via HTTPS :
sudo apt update
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
-
Importez la clé GPG du référentiel et ajoutez le référentiel MongoDB avec :
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'
Au moment de la rédaction de cet article, la dernière version de MongoDB est la version 4.4. Pour installer une autre version, remplacez
4.4
avec votre version préférée. -
Une fois le référentiel activé, installez le
mongodb-org
méta-paquet en tapant :sudo apt install mongodb-org
Les packages suivants seront installés sur votre système :
mongodb-org-server
- Lemongod
démon et les scripts d'initialisation et configurations correspondants.mongodb-org-mongos
- Lesmongos
démon.mongodb-org-shell
- Le shell mongo, une interface JavaScript interactive vers MongoDB. Il est utilisé pour effectuer des tâches administratives via la ligne de commande.mongodb-org-tools
- Contient plusieurs outils MongoDB pour importer et exporter des données, des statistiques, ainsi que d'autres utilitaires.
-
Démarrez le démon MongoDB et activez-le au démarrage en tapant :
sudo systemctl enable --now mongod
-
Pour vérifier si l'installation s'est terminée avec succès, connectez-vous au serveur de base de données MongoDB en utilisant le
mongo
outil, et imprimez l'état de la connexion :mongo --eval 'db.runCommand({ connectionStatus: 1 })'
La sortie ressemblera à quelque chose comme ci-dessous :
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 }
Une valeur de
1
pour leok
le champ indique le succès.
Configuration de MongoDB #
Le fichier de configuration MongoDB est nommé mongod.conf
et se trouve dans le /etc
annuaire. Le fichier est au format YAML.
Les paramètres de configuration par défaut suffisent dans la plupart des cas. Cependant, pour les environnements de production, nous vous recommandons de décommenter la section de sécurité et d'activer l'autorisation, comme indiqué ci-dessous :
sudo nano /etc/mongod.conf
/etc/mongod.confsecurity:
authorization: enabled
L'authorization
L'option active le contrôle d'accès basé sur les rôles (RBAC) qui régule l'accès des utilisateurs aux ressources et aux opérations de la base de données. Si cette option est désactivée, chaque utilisateur aura accès à toutes les bases de données et effectuera n'importe quelle action.
Lors de la modification du fichier de configuration MongoDB, redémarrez le service mongod pour que les modifications prennent effet :
sudo systemctl restart mongod
Pour trouver plus d'informations sur les options de configuration disponibles dans MongoDB 4.4, visitez la page de documentation Options du fichier de configuration.
Création d'un numéro d'utilisateur administratif MongoDB
Si vous avez activé l'authentification MongoDB, vous devrez créer un utilisateur administratif qui peut accéder et gérer l'instance MongoDB.
Accéder au shell mongo :
mongo
Depuis le shell MongoDB, tapez la commande suivante pour vous connecter à admin
base de données :
use admin
switched to db admin
Exécutez la commande suivante pour créer un nouvel utilisateur nommé mongoAdmin
, avec le mot de passe changeMe
et userAdminAnyDatabase
rôle :
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
N'oubliez pas de définir un mot de passe plus sécurisé. Vous pouvez nommer l'utilisateur administratif MongoDB comme vous le souhaitez. Une fois cela fait, quittez le shell mongo avec :
quit()
Pour tester les modifications, accédez au shell mongo en utilisant l'utilisateur administratif que vous avez précédemment créé :
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin
Exécutez show users
et vous devriez voir des informations sur l'utilisateur nouvellement créé :
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"
]
}
Vous pouvez également essayer d'accéder au shell mongo sans aucun argument (il suffit de taper mongo
) et voyez si vous pouvez lister les utilisateurs en utilisant les mêmes commandes que ci-dessus.