Comment installer MongoDB sur Ubuntu 18.04

MongoDB est une base de données de documents gratuite et open-source. Il appartient à une famille de bases de données appelées NoSQL qui sont différentes 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.

Dans ce tutoriel, nous couvrirons le processus d’installation et de configuration de la dernière version de MongoDB Community Edition sur une machine Ubuntu 18.04 à partir des référentiels officiels de MongoDB.

Conditions préalables #

Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu’utilisateur avec les privilèges sudo.

Installation de MongoDB #

Au moment de la rédaction de cet article, la dernière version de MongoDB est la version 4.0.

Avant de poursuivre le processus d’installation, accédez à la section Installer sur Ubuntu de la documentation de MongoDB et vérifiez si une nouvelle version est disponible.

Les étapes suivantes décrivent comment installer MongoDB sur votre serveur Ubuntu:

  1. Activation du référentiel MongoDB

    Tout d’abord, ajoutez la clé GPG MongoDB à votre système à l’aide de la commande suivante:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

    Une fois la clé importée, ajoutez le référentiel MongoDB avec:

    sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

    Si vous obtenez un message d’erreur disantadd-apt-repository command not foundinstallez lesoftware-properties-commonpaquet.

    Pour installer une ancienne version de MongoDB, remplacez simplement4.0avec votre version préférée.

  2. Installation de MongoDB

    Pour pouvoir installer des packages à partir du référentiel MongoDB, vous devez d’abord mettre à jour la liste des packages:

    sudo apt update

    Maintenant que le référentiel est activé et que la liste des packages est mise à jour, vous pouvez installer lemongodb-orgméta-package en tapant:

    sudo apt install mongodb-org

    Les packages suivants seront installés sur votre système dans le cadre de lamongodb-orgpaquet:

    • mongodb-org-server– Lemongoddémon et scripts et configurations init correspondants.
    • mongodb-org-mongos– Lemongosdémon.
    • mongodb-org-shell– Le shell mongo est une interface JavaScript interactive pour 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.
  3. Démarrage de MongoDB

    Une fois l’installation terminée, démarrez le démon MongoDB et activez-le au démarrage en tapant:

    sudo systemctl start mongodsudo systemctl enable mongod
  4. Vérification de l’installation de MongoDB

    Pour vérifier si l’installation s’est terminée avec succès, nous allons nous connecter au serveur de base de données MongoDB à l’aide dumongooutil et imprimer l’état de la connexion:

    mongo --eval 'db.runCommand({ connectionStatus: 1 })'

    La sortie ressemblera à ceci:

    MongoDB shell version v4.0.10
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 4.0.10
    {
      "authInfo" : {
        "authenticatedUsers" : [ ],
        "authenticatedUserRoles" : [ ]
      },
      "ok" : 1
    }

    Une valeur de1pour leokle champ indique le succès.

Configuration de MongoDB #

MongoDB utilise un fichier de configuration au format YAML,/etc/mongod.conf. Vous pouvez configurer votre instance MongoDB en modifiant ce fichier.

Les paramètres de configuration par défaut sont suffisants pour la plupart des utilisateurs. Cependant, pour les environnements de production, il est recommandé de décommenter la section sécurité et d’activer l’autorisation comme indiqué ci-dessous:

/etc/mongod.conf
security:
  authorization: enabled

leauthorizationL’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 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.

Après avoir apporté des modifications au fichier de configuration MongoDB, redémarrez le service mongod avec:

sudo systemctl restart mongod

Pour plus d’informations sur les options de configuration disponibles dans MongoDB 4.0, visitez la page de documentation Options de fichier de configuration.

Création de l’utilisateur administratif MongoDB #

Si vous avez activé l’authentification MongoDB, créez un utilisateur administratif MongoDB qui sera utilisé pour accéder et gérer l’instance MongoDB.

Accédez d’abord à la coque mongo avec:

mongo

Une fois que vous êtes à l’intérieur du shell MongoDB, tapez la commande suivante pour vous connecter auadminbase de données:

use admin
switched to db admin

Exécutez la commande suivante pour créer un nouvel utilisateur nommémongoAdminavec leuserAdminAnyDatabaserôle:

db.createUser(
  {
    user: "mongoAdmin", 
    pwd: "changeMe", 
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Successfully added user: {
	"user" : "mongoAdmin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
Vous pouvez nommer l’utilisateur administratif MongoDB comme vous le souhaitez.

Quittez la coque mongo avec:

quit()

Pour tester les modifications, accédez au shell mongo à l’aide de l’utilisateur administratif que vous avez créé précédemment:

mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin

Maintenant, imprimez les utilisateurs avec:

show users
{
	"_id" : "admin.mongoAdmin",
	"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 (tapez simplementmongo