MongoDB est une base de données de documents NoSQL gratuite et open source couramment utilisée dans les applications web modernes.
Dans ce tutoriel, vous allez apprendre à installer MongoDB, gérer son service et activer l’option d’accès à distance.
Remarque : au moment de sa rédaction, ce tutoriel installe la version 3.6 de MongoDB. Il s’agit de la version mise à disposition à partir des référentiels Ubuntu par défaut. Cependant, nous recommandons généralement d’installer plutôt la dernière version de MongoDB (la version 4.4 au moment de la rédaction). Si vous souhaitez installer la dernière version de MongoDB, nous vous encourageons à suivre le guide suivant sur Comment installer MongoDB sur Ubuntu 20.04 à partir de la source.
Pour suivre ce tutoriel, vous aurez besoin de :
Les référentiels des paquets officiels d’Ubuntu incluent MongoDB. Nous pouvons donc installer les paquets nécessaires en utilisant apt
. Comme nous l’avons mentionné dans l’introduction, la version disponible à partir des référentiels par défaut n’est pas la plus récente. Pour installer la dernière version de Mongo, veuillez plutôt suivre ce tutoriel.
Tout d’abord, mettez à jour la liste des paquets pour obtenir la version la plus récente des listes du référentiel :
- sudo apt update
Maintenant, installez le paquet MongoDB en lui-même :
- sudo apt install mongodb
Cette commande vous invite à confirmer si vous souhaitez bien installer le paquet mongodb
et ses dépendances. Pour ce faire, appuyez sur Y
, puis sur ENTER
.
Cette commande installe plusieurs paquets qui contiennent une version stable de MongoDB, ainsi que des outils de gestion utiles pour le serveur MongoDB. Le serveur de la base de données démarre automatiquement après l’installation.
Ensuite, vérifions si le serveur fonctionne correctement.
Le processus d’installation a démarré MongoDB automatiquement. Cependant, vérifions tout de même si le service a bien été lancé et si la base de données fonctionne.
Tout d’abord, vérifiez l’état du service :
- sudo systemctl status mongodb
Vous verrez la sortie suivante :
Output● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago
Docs: man:mongod(1)
Main PID: 2790 (mongod)
Tasks: 23 (limit: 2344)
Memory: 42.2M
CGroup: /system.slice/mongodb.service
└─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Selon ce résultat, le serveur MongoDB est opérationnel.
Pour vérifier cela de manière plus approfondie, en fait, nous allons nous connecter au serveur de base de données et exécuter la commande de diagnostic suivante. Cela générera la version actuelle de la base de données, l’adresse et le port du serveur et la sortie de la commande de l’état :
- mongo --eval 'db.runCommand({ connectionStatus: 1 })'
OutputMongoDB shell version v3.6.8
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") }
MongoDB server version: 3.6.8
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Dans la réponse, une valeur de 1
dans le champ ok
indique que le serveur fonctionne correctement.
Ensuite, nous allons apprendre à gérer l’instance du serveur.
Le processus d’installation décrit à l’étape 1 configure MongoDB en tant que service systemd
. Cela signifie que vous pouvez le gérer en utilisant des commandes systemctl
standard avec tous les autres services du système dans Ubuntu.
Pour vérifier l’état du service, tapez :
- sudo systemctl status mongodb
Vous pouvez arrêter le serveur à tout moment en saisissant ce qui suit :
- sudo systemctl stop mongodb
Pour démarrer le serveur lorsqu’il est arrêté, tapez :
- sudo systemctl start mongodb
Vous pouvez également redémarrer le serveur en utilisant la commande suivante :
- sudo systemctl restart mongodb
Par défaut, MongoDB est configuré pour démarrer automatiquement avec le serveur. Si jamais vous souhaitez désactiver ce démarrage automatique, saisissez ce qui suit :
- sudo systemctl disable mongodb
Vous pouvez réactiver le démarrage automatique à tout moment en utilisant la commande suivante :
- sudo systemctl enable mongodb
Maintenant, réglons les paramètres du pare-feu de notre installation MongoDB.
En supposant que vous ayez suivi les instructions du tutoriel de configuration initiale de serveur pour activer le pare-feu sur votre serveur, le serveur MongoDB sera inaccessible à partir d’Internet.
Si vous prévoyez d’utiliser MongoDB uniquement en local, avec des applications exécutées sur le même serveur, il s’agit de la configuration recommandée et sécurisée à utiliser. Cependant, si vous souhaitez vous connecter à votre serveur MongoDB à partir d’Internet, vous devez autoriser les connexions entrantes en ajoutant une règle UFW.
Pour autoriser l’accès à MongoDB sur son port par défaut 27017
à partir de tout endroit, vous pouvez exécuter sudo ufw allow 27017
. Cependant, en activant l’accès Internet au serveur MongoDB sur une installation par défaut, toute personne aura un accès sans restriction au serveur de la base de données et à ses données.
Dans la plupart des cas, MongoDB ne doit être accessible qu’à partir de certains lieux de confiance (un autre serveur hébergeant une application, par exemple). Pour autoriser un autre serveur de confiance à accéder uniquement au port par défaut de MongoDB, vous pouvez spécifier l’adresse IP du serveur distant dans la commande ufw
. Ainsi, seule la machine sera explicitement autorisée à se connecter :
- sudo ufw allow from trusted_server_ip/32 to any port 27017
Vous pouvez vérifier le changement dans les paramètres de pare-feu avec ufw
:
- sudo ufw status
Vous devriez voir le trafic vers le port 27017
autorisé dans la sortie. Notez que si vous avez décidé d’autoriser une certaine adresse IP à se connecter au serveur MongoDB, l’adresse IP de l’emplacement autorisé sera référencée à la place de Anywhere
dans la sortie de cette commande :
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
Vous pouvez trouver des paramètres de pare-feu plus avancés pour restreindre l’accès aux services dans les Essentiels d’UFW : Règles et commandes communes du pare-feu.
Même si le port est ouvert, MongoDB continuera toujours d’écouter uniquement l’adresse locale 127.0.0.1
. Pour autoriser des connexions à distance, ajoutez l’adresse IP publique de votre serveur au fichier mongodb.conf
.
Ouvrez le fichier de configuration de MongoDB dans votre éditeur de texte préféré. Cet exemple de commande utilise nano
:
- sudo nano /etc/mongodb.conf
Ajoutez l’adresse IP de votre serveur MongoDB à la valeur bindIP
. Veillez à placer une virgule entre l’adresse IP existante et celle que vous avez ajoutée :
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
Enregistrez le fichier et quittez l’éditeur. Si vous avez modifié le fichier avec nano
, faites-le en appuyant sur CTRL + X
, Y
, puis sur ENTER
.
Ensuite, redémarrez le service MongoDB :
- sudo systemctl restart mongodb
MongoDB écoute maintenant les connexions à distance, mais toute personne peut y accéder. Suivez le tutoriel Comment sécuriser MongoDB sur Ubuntu 20.04 pour ajouter un utilisateur administratif et verrouiller un peu plus l’accès.
Vous pouvez trouver d’autres tutoriels plus approfondis sur la façon de configurer et d’utiliser MongoDB dans ces articles publiés par la communauté DigitalOcean. La documentation officielle de MongoDB est également une excellente ressource pour découvrir les possibilités que MongoDB a à offrir.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.