MongoDB est une base de données NoSQL qui offre des performances élevées, une haute disponibilité et une mise à l'échelle automatique de la base de données au niveau de l'entreprise. MongoDB est une base de données NoSQL, vous ne pouvez donc pas utiliser SQL (Structured Query Language) pour insérer et récupérer des données, et il ne stocke pas de données dans des tables comme MySQL ou Postgres. Les données sont stockées dans une structure "document" au format JSON (appelé BSON dans MongoDB). MongoDB a été introduit en 2009 et est actuellement développé par MongoDB Inc.
MongoDB propose uniquement des packages pour les versions 64 bits LTS (support à long terme) d'Ubuntu. Par exemple 14.04 LTS (fidèle), 16.04 LTS (xenial), 18.04 LTS (bionique) et ainsi de suite.
Dans ce tutoriel, j'installerai MongoDB 4.0 sur Ubuntu 18.04 LTS.
Prérequis
- Serveur Ubuntu 18.04 - 64 bits
- Privilèges root
Ce que nous allons faire dans ce didacticiel :
- Installer MongoDB
- Configurer MongoDB
- Conclusion
Installer MongoDB sur Ubuntu 18.04 LTS
Étape 1 - Importation de la clé publique
Les clés GPG du distributeur de logiciels sont requises par le gestionnaire de packages Ubuntu apt (Advanced Package Tool) pour garantir la cohérence et l'authenticité du package. Exécutez cette commande pour importer les clés MongoDB sur votre serveur.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4
Étape 2 - Créer le fichier de liste source MongoDB
Créez un fichier de liste MongoDB dans /etc/apt/sources.list.d/ avec cette commande :
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Étape 3 - Mettre à jour le référentiel
mettez à jour le dépôt avec la commande apt :
sudo apt-get update
Étape 4 - Installer MongoDB
Vous pouvez maintenant installer MongoDB en tapant cette commande :
sudo apt-get install -y mongodb-org
Le programme d'installation de MongoDB apt a créé automatiquement un fichier mongod.service pour Systemd, il n'est donc plus nécessaire de le créer manuellement.
Démarrez MongoDB et ajoutez-le en tant que service à démarrer au démarrage :
sudo systemctl start mongod
sudo systemctl enable mongod
Vérifiez maintenant que MongoDB a été démarré sur le port 27017 avec la commande netstat.
sudo netstat -plntu
Configurer le nom d'utilisateur et le mot de passe MongoDB
Lorsque les packages MongoDB sont installés, vous pouvez configurer le nom d'utilisateur et le mot de passe pour le serveur de base de données :
Étape 1 - Ouvrir mongo shell
Avant de configurer un nom d'utilisateur et un mot de passe pour MongoDB, vous devez ouvrir le shell MongoDB sur votre serveur. Vous pouvez vous connecter en tapant :
mongo
Si vous obtenez l'erreur Échec de l'initialisation globale :BadValue Non valide ou aucun paramètre régional utilisateur défini. Veuillez vous assurer que les variables d'environnement LANG et/ou LC_* sont définies correctement, essayez la commande :
export LC_ALL=C
mongo
Étape 2 - Passer à l'administrateur de la base de données
Une fois que vous êtes dans le shell MongoDB, passez à la base de données nommée admin :
use admin
Étape 3 - Créer l'utilisateur root
Créez l'utilisateur root avec cette commande :
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Description : Créez l'utilisateur admin avec le mot de passe admin123 et ayez l'autorisation/le rôle en tant que root et la base de données est admin .
Tapez maintenant exit pour quitter le shell MongoDB.
exit
Et vous êtes de retour sur le shell Linux.
Étape 4 - Activer l'authentification MongoDB
Modifiez le fichier de service mongodb "/lib/systemd/system/mongod.service" avec votre éditeur.
sudo nano /lib/systemd/system/mongod.service
Sur le 'ExecStart ' ligne 9, ajoutez la nouvelle option '--auth '.
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
Enregistrez le fichier de service et quittez nano.
Rechargez le service systemd :
sudo systemctl daemon-reload
Étape 5 - Redémarrez MongoDB et essayez de vous connecter
Maintenant, redémarrez MongoDB et connectez-vous avec l'utilisateur créé.
sudo service mongod restart
et connectez-vous au shell MongoDB avec cette commande :
mongo -u admin -p admin123 --authenticationDatabase admin
et vous verrez le résultat comme ceci :
Activer l'accès externe et configurer le pare-feu UFW
UFW est le pare-feu par défaut d'Ubuntu. Dans ce chapitre, je montrerai comment configurer UFW pour autoriser l'accès externe à MongoDB.
Vérifier le statut UFW
sudo ufw status
Lorsque le résultat est :
Status: inactive
Activez UFW avec cette commande et ouvrez d'abord le port SSH si vous êtes connecté par SSH :
sudo ufw allow ssh
sudo ufw enable
avant de passer aux étapes suivantes.
Pour des raisons de sécurité, vous devez autoriser l'accès au port MongoDB 27017 uniquement à partir des adresses IP qui doivent accéder à la base de données. Par défaut, localhost est toujours en mesure d'y accéder, donc pas besoin d'ouvrir le port MongoDB pour l'IP 127.0.0.1.
Syntaxe du pare-feu UFW
sudo ufw allow from <target> to <destination> port <port number>
Ouvrir le port MongoDB dans UFW
Pour autoriser l'accès depuis l'IP externe 192.168.1.10 à MongoDB, utilisez cette commande :
sudo ufw allow from 192.168.1.10 to any port 27017
Remplacez l'adresse IP dans la commande ci-dessus par l'adresse IP externe à laquelle vous souhaitez autoriser l'accès à MongoDB.
Si vous souhaitez ouvrir le port MongoDB pour n'importe quelle adresse IP, par ex. si vous l'exécutez sur un réseau local et que tous les systèmes de ce réseau pourront accéder à MongoDB, utilisez cette commande :
sudo ufw allow 27017
Vérifiez l'état du pare-feu UFW avec cette commande :
sudo ufw status
MongoDB écoute localhost par défaut, pour rendre la base de données accessible de l'extérieur, nous devons la reconfigurer pour écouter également sur l'adresse IP du serveur.
Ouvrez le fichier mongod.conf dans l'éditeur nano :
sudo nano /etc/mongod.conf
et ajoutez l'adresse IP du serveur dans la ligne bind_ip comme ceci :
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192,168.1.100
Remplacez 192.168.1.100 par l'adresse IP de votre serveur, puis redémarrez MongoDB pour appliquer les modifications.
sudo service mongod restart
Vous pouvez maintenant accéder au serveur de base de données MongoDB sur le réseau.
Image de machine virtuelle
Ce tutoriel est disponible sous forme de machine virtuelle prête à l'emploi au format OVA/OVF pour les abonnés Howtoforge. Le format VM est compatible avec VMWare et Virtualbox et d'autres outils qui peuvent importer le format ova ou ovf. Vous pouvez trouver le lien de téléchargement dans le menu de droite en haut. Cliquez sur le nom du fichier pour lancer le téléchargement.
Les identifiants de connexion de la VM sont :
Connexion SSH
Nom d'utilisateur : administrateur
Mot de passe :howtoforge
L'utilisateur administrateur dispose des autorisations sudo.
Veuillez changer les mots de passe après le premier démarrage.
La VM est configurée pour l'IP statique 192.168.1.100. Des instructions sur la façon de changer l'adresse IP statique peuvent être trouvées ici.
Conclusion
MongoDB est une base de données NoSQL bien connue qui offre des performances élevées, une haute disponibilité et une mise à l'échelle automatique. Il diffère des SGBDR tels que MySQL, PostgreSQL et SQLite car il n'utilise pas SQL pour définir et récupérer des données. MongoDB stocke les données dans des "documents" appelés BSON (représentation binaire de JSON avec des informations supplémentaires). MongoDB n'est disponible que pour la version 64 bits de support à long terme d'Ubuntu.