Vous avez donc choisi d'utiliser MongoDB, une excellente alternative to MariaDB pour créer une application MERN stack, une plateforme analytique ou tout autre système basé sur des documents, mais vous vous heurtez aux lignes de commande Linux et à une avalanche d'erreurs dans le terminal.
Pas d'inquiétude : ce guide couvre tout ce que vous devez savoir, de A à Z, pour installer MongoDB sur Ubuntu.
MongoDB utilise X.Y.Z versioning 8.0 est une majeure série de versions, et 8.2 est une mineure version dans ce cycle 8.0. Les versions mineures ajoutent des fonctionnalités au sein du même cycle majeur et, à partir de la 8.0, sont également proposées pour les installations on-prem dans des cas d'usage spécifiques (par exemple, Search et Vector Search). MongoDB 8.0 sur Ubuntu prend en charge 24.04 (Noble), 22.04 (Jammy) et 20.04 (Focal) sur les systèmes 64 bits, avec support ARM64 sur certaines plateformes.
Prérequis GnuPG et Curl
Avant d'installer le paquet officiel mongodb-org , Ubuntu nécessite deux prérequis : GnuPG et Curl. Ces outils autorisent Ubuntu à télécharger MongoDB, car le paquet mongodb intégré à Ubuntu n'est pas maintenu par MongoDB Inc. et entre en conflit avec le paquet officiel mongodb-org . Si vous l'avez déjà installé, mongodb pensez à le désinstaller.
Ensuite, exécutez la commande sudo apt-get install gnupg curl. Curl est un outil de téléchargement de fichiers depuis Internet, nécessaire pour récupérer la clé de sécurité de MongoDB. GnuPG est ce qu'utilise Ubuntu pour vérifier l'authenticité des logiciels. Sans GnuPG, Ubuntu ne peut pas vérifier les paquets MongoDB.
Vérifiez que votre terminal a bien installé GnuPG et Curl. Si c'est le cas, le résultat devrait ressembler à ceci :
Importation de la clé GPG MongoDB
Le gestionnaire de paquets de Ubuntu, APT, utilise des clés GPG pour vérifier les paquets avant leur installation. Sans cette clé GPG, Ubuntu refuse d'ajouter les dépôts de MongoDB. Tapez la commande suivante dans votre terminal pour ajouter la clé :
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Si tout se passe bien, votre terminal devrait afficher ceci :
En résumé, cette commande télécharge la signature de sécurité de MongoDB, la convertit dans un format lisible par Ubuntu, puis l'enregistre dans un dossier système sécurisé. Voici le détail de chaque section de la commande :
- curl -fsSL URL télécharge la clé officielle de MongoDB
- –dearmor convertit la clé du format texte en binaire pour que Ubuntu puisse la lire
- -o /usr/share/keyrings/mongodb-server-8.0.gpg enregistre le fichier binaire dans le dossier où Ubuntu stocke les clés de confiance
Si vous suivez chaque commande à la lettre, la clé GPG publique sera ajoutée sans problème. Certains utilisateurs rencontrent cependant des erreurs lors de l'installation de MongoDB à cause d'une clé GPG incompatible. Des erreurs comme :
NO_PUBKEY
The following signatures couldn't be verified
public key not available
apparaissent lorsque vous n'avez pas suivi les commandes GPG exactes indiquées plus haut et que vous avez utilisé à la place sudo apt-key car les versions récentes de Ubuntu ne le recommandent plus.
Ajouter le dépôt MongoDB
Ajouter le dépôt de MongoDB crée un fichier indiquant à Ubuntu que les paquets MongoDB sont disponibles à une adresse internet précise. Créez le fichier de liste à l'emplacement /etc/apt/sources.list.d/mongodb-org-8.0.list en y écrivant la ligne du dépôt via echo … | sudo tee …
C'est là que les choses se compliquent : différentes versions de Ubuntu requièrent une variante différente de cette commande. Nous allons voir comment importer le fichier de liste sur chacune des trois versions de Ubuntu mentionnées plus haut.
Ubuntu 24.04 (Noble)
Pour créer le fichier de liste sur Ubuntu 24.04, entrez simplement echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list dans votre terminal.
Ça peut sembler confus, mais pas de panique. Une fois la commande décomposée en sections, tout deviendra clair.
- echo affiche du texte
- /etc/apt/sources.list.d est le dossier dans lequel Ubuntu stocke les définitions des sources logicielles. Chaque fichier au format .list dans ce dossier indique à Ubuntu un emplacement précis depuis lequel télécharger des logiciels
- Par défaut, un utilisateur normal ne peut rien écrire dans les dossiers système. t-shirt accorde à l'utilisateur les droits nécessaires pour écrire du texte dans les fichiers système, tout en utilisant sudo
- noble est le nom de code de Ubuntu 24.04. Chaque version de Ubuntu a un nom de code :
| Version | Nom de code |
| 20.04 | Focal |
| 22.04 | Jammy |
| 24.04 | Noble |
Si vous ne faites pas correspondre votre version de Ubuntu avec la bonne ligne de commande, Ubuntu ne reconnaît pas le dépôt de MongoDB.
Ubuntu 22.04 (Jammy)
L'ajout du fichier de liste à Ubuntu Jammy suit exactement la même procédure, mais vous devez saisir la ligne de commande en remplaçant noble avec jammy, comme ceci :
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Vérifiez bien que cela correspond à votre version de Ubuntu, sinon la commande échouera à nouveau.
Ubuntu 20.04 (Focal)
Suivez les mêmes étapes ici, mais au lieu de noble or jammy, entrez focal:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Maintenant que le dépôt est configuré, vous pouvez passer à l'installation mongodb-org.
Actualiser la base de données des paquets
Maintenant que le dépôt est reconnu par Ubuntu, vous devez recharger la base de données des paquets afin qu'elle inclue également MongoDB. Exécutez la commande suivante :
sudo apt-get update
Cette commande est identique pour toutes les versions de Ubuntu. Si vous l'omettez, Ubuntu ne trouvera pas MongoDB. Une fois la commande exécutée avec succès, votre terminal devrait afficher :
Maintenant que la base de données des paquets est rechargée, il est temps de télécharger les paquets MongoDB.
Installer MongoDB Community Server
Plusieurs versions de MongoDB sont disponibles, mais la plupart des utilisateurs optent pour la dernière version stable. Pour l'installer, exécutez : sudo apt-get install -y mongodb-org
Ubuntu a maintenant téléchargé et installé les paquets MongoDB, créé un compte utilisateur et un répertoire de données pour MongoDB, et l'a enregistré en tant que service système. Voyons maintenant comment le démarrer.
Comment démarrer MongoDB
Pour lancer MongoDB, vous devez indiquer au gestionnaire de services de Ubuntu, "systemd", de le reconnaître comme service en arrière-plan. Pour cela, tapez la commande suivante dans votre terminal :
sudo systemctl start mongod
Si la commande s'exécute correctement, Ubuntu lancera MongoDB en arrière-plan. Dans le cas contraire, vous pourriez recevoir une erreur similaire à Impossible de démarrer mongod.service.
Cela peut être dû à plusieurs problèmes courants :
- Erreur dans le fichier de configuration in /etc/mongod.conf (les erreurs d'indentation YAML sont fréquentes)
- Conflit de port (le port 27017 est déjà utilisé)
- Problème de permissions sur les répertoires de données ou de logs (var/lib/mongodb ou var/log/mongodb)
- Disque plein or état corrompu du système de fichiers
Trois commandes pour diagnostiquer le problème
Il est facile de supposer ce qui pourrait bloquer MongoDB, mais identifier la cause exacte est une autre affaire. Voici trois façons concrètes de repérer l'origine de l'erreur :
- Vérifier l'état du service : sudo systemctl status mongod --no-pager
- Consulter les journaux détaillés (essentiel) : sudo journalctl -u mongod –no-pager -n 100
- Consulter le fichier journal propre à MongoDB
À noter : si votre disque est plein ou que vos fichiers système sont corrompus, le problème relève du matériel, pas du logiciel. Si votre configuration actuelle est trop ancienne, il faudra peut-être investir dans du matériel plus récent pour faire tourner MongoDB correctement.
Si l'achat d'un serveur dédié n'entre pas dans votre budget, pensez à explorer les offres de Cloudzy Ubuntu VPS pour une expérience propre sur votre propre serveur privé avec la distribution Ubuntu de votre choix. Il est livré avec 24/7 support et jusqu'à 40Gbps de vitesse réseau, grâce à stockage NVMe SSD et DDR5 RAM rapides.
De plus, il offre une latence minimale, 99.95% de disponibilité, et une garantie de remboursement de 14 jours Et ce n'est pas tout : il est également disponible dans 12 emplacements à travers le monde, à un tarif accessible.
Trois correctifs courants pour faire fonctionner MongoDB
Il n'existe pas de méthode universelle pour identifier précisément le problème de votre système avec MongoDB et le résoudre en une seule étape. Voici donc quelques correctifs courants qui peuvent vous aider à remettre MongoDB en marche.
- Erreur d'indentation dans le fichier de configuration YAML. Si vous avez modifié /etc/mongod.conf vérifiez l'indentation en ouvrant sudo nano /etc/mongod.conf. Le fichier YAML est particulièrement sensible aux espaces : assurez-vous de n'utiliser que deux espaces par niveau dans /etc/mongod.conf.
- Port 27017 occupé. Si un autre processus utilise le port 27017, arrêtez-le ou modifiez le port de MongoDB dans mongod.conf. Si vous n'êtes pas sûr de ce qui tourne sur le port 27017, vous pouvez exécuter sudo ss -lntp | grep 27017 pour vérifier
- Problème de permissions sur le répertoire de données. Il arrive que MongoDB ne dispose pas des permissions nécessaires pour s'exécuter sur votre système et ne démarre donc pas du tout. Commencez par exécuter sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, puis redémarrez MongoDB avec sudo systemctl restart mongod
D'après Site officiel de MongoDB, une autre façon de contourner ce problème est de recharger le daemon avec sudo systemctl daemon-reload, puis d'exécuter la première commande, sudo systemctl start mongod, à nouveau.
S'il n'y a pas de mongod.service, c'est que l'installation n'a pas créé l'unité systemd. Réinstallez le paquet mongodb-org en question.
Cela dit, vous pouvez vérifier si MongoDB a bien démarré avec sudo systemctl status mongod. Si le terminal affiche actif (en cours d'exécution), tout est en ordre. Il reste toutefois quelques configurations supplémentaires qui rendront votre expérience bien plus fluide.
Automatiser MongoDB
MongoDB ne s'ouvre pas automatiquement à chaque démarrage du serveur ; vous devrez répéter certaines étapes à chaque fois. Vous pouvez cependant configurer Ubuntu pour lancer MongoDB au démarrage du bureau.
Exécutez simplement sudo systemctl enable mongod dans votre terminal. À partir de maintenant, votre système lancera MongoDB après chaque redémarrage. Vous pouvez également redémarrer le processus mongod avec la commande sudo systemctl restart mongod. Par ailleurs, pour suivre les erreurs ou les messages importants, consultez la sortie dans le fichier :
/var/log/mongodb/mongod.log
Maintenant que tout est en place, commençons à utiliser mongod.
Ouvrir le shell MongoDB
Pour interagir avec leur base de données, les utilisateurs doivent ouvrir un shell MongoDB avec la commande mongosh. Considérez-le comme un terminal dédié à MongoDB, ou comme une console MySQL. Vous pouvez aussi interagir avec MongoDB via des outils graphiques, comme les drivers MongoDB. Mais si vous préférez rester dans le terminal, mongosh est fait pour ça.
Votre MongoDB sera désormais pleinement opérationnel, mais quelques étapes supplémentaires sont nécessaires pour le sécuriser.
Activer l'authentification MongoDB
Par défaut, MongoDB n'est pas protégé par un mot de passe, car vous devez déjà avoir accès au système pour créer un utilisateur. Voici comment procéder
Créer un utilisateur administrateur
Commencez par basculer vers la base de données admin avec :
use admin
Créez ensuite un utilisateur avec db.createUser({…}). Renseignez votre
- Nom d'utilisateur
- Mot de passe
- Rôle
Pour le rôle, tapez de préférence root ce qui signifie un contrôle total ou administrateur.
Activer l'authentification
Maintenant que notre utilisateur est configuré, nous devons modifier le /etc/mongod.conf fichier. C'est ce fichier qui contrôle le comportement de MongoDB. Gardez à l'esprit qu'après toute modification de ce fichier, vous devez redémarrer le mongod service avec sudo systemctl restart mongod. Le paramètre à modifier ici s'appelle authorization et se présente ainsi :
security:
authorization:
Pour finaliser l'authentification, modifiez simplement la valeur authorization comme ceci :
security:
authorization: enabled
Désormais, MongoDB exige une connexion : votre authentification est en place. Passons maintenant à une autre configuration qui tire pleinement parti de MongoDB.
Ouvrir le pare-feu
Comme mentionné précédemment, MongoDB s'exécute sur le port 27017. Les pare-feux bloquent les ports par défaut, vous devez donc autoriser les applications à utiliser le port 27017. Pour ce faire, exécutez simplement la commande :
ufw allow from YOUR_IP to any port 27017
Vous pouvez également exécuter la commande ufw allow 27017, mais soyez prudent : cette commande autorise l'ensemble d'internet à accéder à ce port. La première option est généralement plus sûre, car elle limite l'accès au port à votre seule adresse IP.
Certains utilisateurs peuvent rencontrer des difficultés avec MongoDB, notamment des problèmes d'accès à distance. Lisez la suite pour savoir comment les résoudre.
Problème d'accès à distance
MongoDB démarre avec bindIp. bindIp limite MongoDB à 127.0.0.1, en n'autorisant que les connexions locales. Ainsi, si vous tentez de vous connecter à votre serveur MongoDB depuis un autre emplacement, l'accès vous sera refusé : MongoDB est configuré par défaut pour n'accepter que les connexions locales, sauf configuration contraire.
Retournez dans /etc/mongod.conf, et vous verrez trois lignes comme ceci :
net:
port: 27017
bindIp: 127.0.0.1
Si vous souhaitez autoriser les connexions à distance vers votre mongod utilisateur, modifiez les valeurs présentées ci-dessus comme suit :
net:
port: 27017
bindIp: 0.0.0.0
Ensuite, redémarrez votre mongod service avec sudo systemctl restart mongod comme pour toute autre modification apportée au fichier.
Vous avez maintenant accordé à votre mongod service la permission d'accepter les connexions distantes. Attention toutefois : en procédant ainsi, vous exposez votre base de données à l'ensemble d'internet si vous n'avez pas encore authentifié votre mongod utilisateur. De nombreux bots analysent en permanence les ports MongoDB ouverts, alors assurez-vous toujours que votre utilisateur mongod dispose d'un mot de passe.
Récapitulatif général
Félicitations, vous avez maintenant effectué toutes les étapes pour créer un service MongoDB optimisé pour votre système Ubuntu. Voici également une carte mentale pour suivre chaque étape présentée dans cet article.
| Commande | Ce que ça fait |
| mise à jour apt | Actualiser la liste des paquets |
| apt installer | Installer un paquet |
| curl | Télécharger un fichier |
| gpg | Gérer les clés de chiffrement |
| echo | Afficher du texte |
| t-shirt | Écrire dans un fichier protégé |
| systemctl start | Démarrer le service |
| systemctl enable | Activer au démarrage |
| statut systemctl | Vérifier le service |
| mongosh | Accéder au shell MongoDB |
| Modifier /etc/mongod.conf | Activer l'authentification |
| ufw | Gérer le pare-feu |
| bindIp | Autoriser l'accès distant |
Cela devrait vous aider à mieux comprendre l'ensemble du processus. Mais si configurer MongoDB par vous-même vous semble trop complexe, pensez à démarrer le MongoDB VPS de Cloudzy pour votre propre serveur Ubuntu 24.04 LTS privé avec MongoDB préinstallé.
Il est livré avec une 99.95% uptime, 24/7 support, et un 14 jours garantie de remboursement. Par ailleurs, il supporte jusqu'à 40 Gbps de bande passante grâce à son DDR5 RAM et stockage NVMe SSD stockage. Et peu importe où vous vous trouvez, il est disponible dans 12 emplacements à travers le monde à un prix abordable.
Cela dit, vous avez finalement réussi à mettre en place votre propre service MongoDB, entièrement configuré pour supporter des charges de travail et des activités en production.