Installation et configuration d'un serveur de base de donnée MongoDB sur un serveur linux
- Ubuntu Serveur 18.04 - 64 bit
- Avoir les privilèges Root
-
Installer MongoDB
-
Configurer MongoDB
-
Conclusion
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
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
mettre à jour le référentiel avec la commande apt:
sudo apt-get install -y mongodb-org
Vous pouvez maintenant installer MongoDB en tapant cette commande:
sudo apt-get install -y mongodb-org
Le programme d'installation d'apt MongoDB 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
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 une erreur Échec de l'initialisation globale: BadValue Non valide ou aucun paramètre régional utilisateur n'est défini. Veuillez vous assurer que les variables d'environnement LANG et / ou LC_ * sont correctement définies, essayez la commande:
export LC_ALL=C
mongo
Une fois que vous êtes dans le shell MongoDB, passez à la base de données nommée admin:
use admin
Créez l'utilisateur root avec cette commande:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Desc: crée l'utilisateur admin avec le mot de passe admin123 et avoir l'autorisation rôle en tant que root de la base de données est admin.
Tapez maintenant exit
pour quitter le shell MongoDB.
exit
Et vous êtes de retour sur le shell de Linux.
Modifiez le fichier de service mongodb '/lib/systemd/system/mongod.service' avec votre éditeur.
sudo nano /lib/systemd/system/mongod.service
A la ligne 9 ExecStart, 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
Redémarrez maintenant 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 la sortie comme ceci:
UFW est le pare-feu par défaut dans Ubuntu. Dans ce chapitre, je montrerai comment configurer UFW pour autoriser l'accès externe à MongoDB.
Vérifiez l'état de l'UFW
sudo ufw status
Lorsque le résultat est:
Status: inactive
Activez UFW avec cette commande et ouvrez d'abord le port SSH s'il est connecté par SSH:
sudo ufw allow ssh
sudo ufw enable
avant de passer aux étapes suivantes.
Pour des raisons de sécurité, vous ne devez autoriser l'accès au port MongoDB 27017 qu'à 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 IP 127.0.0.1.
Pour autoriser l'accès de l'IP externe 192.168.1.10 à MongoDB, utilisez cette commande:
sudo ufw allow from 152.228.217.119 to any port 27017
Remplacez l'adresse IP dans la commande ci-dessus par l'IP externe que vous souhaitez autoriser à accéder à MongoDB.
Si vous souhaitez ouvrir le port MongoDB pour n'importe quelle adresse IP, par exemple 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
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,152.228.217.119
Remplacez 152.228.217.119 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 via le réseau.
Par exemple, on peut spécifier à la fois PLAIN et SCRAM-SHA-256 comme mécanismes d'authentification, utilisez la commande suivante:
mongod --setParameter authenticationMechanisms=PLAIN,SCRAM-SHA-256 --auth
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 Ubuntu de support à long terme 64 bits.