MongoDB est une base de données de documents, stockant les données sous une forme de type JSON, ce qui est une approche révolutionnaire par rapport aux bases de données relationnelles traditionnelles. Cela ne signifie pas que les bases de données SQL vont bientôt disparaître; ils seront là pendant longtemps lorsque vous aurez besoin de stocker des données structurées.
Cela étant dit, MongoDB reçoit de plus en plus de cas d'utilisation; la possibilité de stocker des données sous une forme qui peut changer à la volée est une chose avec laquelle il faut compter.
Dans ce didacticiel, nous allons installer la dernière version communautaire de cette base de données NoSQL sur un RHEL 8 / CentOS 8, à l'aide du package tarball. Pour que cela fonctionne correctement, nous allons configurer l'environnement minimal et tester notre service de configuration et d'exécution.
Dans ce didacticiel, vous apprendrez :
- Comment télécharger et extraire l'archive tar MongoDB
- Comment configurer l'environnement du service
- Comment gérer le service mongod
- Comment se connecter à mongo shell, insérer et interroger des exemples de données

Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | MongoDB 4 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Comment installer mongodb sur RHEL 8 / CentOS 8 instructions étape par étape
Nous devons rassembler une URL avant l'installation. Pour cela, nous devons visiter le site communautaire MongoDB Download Center, sélectionner le système d'exploitation et la version (Linux 64bit legacy dans ce cas, nous avons besoin de l'archive tar). Bien que nous disposions d'un bouton de téléchargement, nous obtenons également une URL directe ci-dessous, que nous pouvons utiliser directement à partir de la machine cible.
Cela nous évite de télécharger le package via le navigateur, puis de le transférer sur la machine cible, à condition que nous ayons un accès Internet à partir de la cible. Prenez donc note de l'URL, nous l'utiliserons sous peu.
- Nous stockerons les binaires sous
/opt
. Sur la machine cible, nous entrons dans le répertoire :# cd /opt
Et téléchargez l'archive en fournissant l'URL acquise précédemment à
wget
:# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz--2019-01-03 16:49:59-- https://fastdl.mongodb. org/linux/mongodb-linux-x86_64-4.0.5.tgzRésolution de fastdl.mongodb.org (fastdl.mongodb.org)... 52.222.150.27, 52.222.150.229, 52.222.150.45, ...Connexion à fastdl.mongodb .org (fastdl.mongodb.org)|52.222.150.27|:443... Connecté.Demande HTTP envoyée, en attente de réponse... 200 OKLongueur :73214518 (70M) [application/x-gzip]Enregistrement vers :'mongodb- linux-x86_64-4.0.5.tgz'mongodb-linux-x86_64-4.0.5.tgz 100%[==============================================================================================================>] 69.82M 3.12MB/s en 23s 2019-01- 03 16:50:22 (3,06 Mo/s) - 'mongodb-linux-x86_64-4.0.5.tgz' enregistré [73214518/73214518]
- Nous extrayons l'archive :
# tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
Et créez un lien symbolique plus facile à retenir appelé
mongodb
qui pointe vers le répertoire extrait (le numéro de version peut différer) :# ln -s mongodb-linux-x86_64-4.0.5 mongodb
- Nous créons l'utilisateur qui exécutera le service appelé
mongod
:# useradd mongod
- Nous créons le répertoire où mongodb stockera ses données :
# mkdir -p /var/lib/mongo
- Nous définissons le
mongod
user en tant que propriétaire des fichiers binaires et du répertoire de données :# chown -R mongod:mongod /opt/mongodb*# chown -R mongod :/var/lib/mongo
- Nous créons un fichier de configuration de base pour mongodb. Nous spécifions le répertoire de données créé et configurons la base de données pour qu'elle n'écoute que sur localhost, sur le port par défaut
27017
. Nous créons le fichier texte/etc/mongod.conf
avec le contenu suivant :storage: dbPath: "/var/lib/mongo" journal: enabled: true net: port: 27017 bindIp: "127.0.0.1"
Remarquez le
dbPath
paramètre, que nous avons défini sur le répertoire que nous avons créé pour le stockage des données lors d'une étape précédente. - Pour
systemd
pour pouvoir gérer le service, nous créons le fichier texte/etc/systemd/system/mongod.service
avec une configuration minimale :[Unit] Description=MongoDB After=syslog.target network.target [Service] Type=simple User=mongod Group=mongod ExecStart=/opt/mongodb/bin/mongod --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Notez que nous avons utilisé le
mongod
utilisateur et groupe, utilisé notre chemin personnalisé pour lemongod
binaire, et inclus le fichier de configuration que nous avons créé à la main. - Nous définissons
selinux
à permissif pour l'instant, car cela bloquerait l'accès aux ressources par le service. Paramétrer leselinux
politiques n'entre pas dans le cadre de ce didacticiel.# setenforce 0
- Nous demanderons à
systemd
pour recharger :systemctl daemon-reload
- Et vérifiez si le service est reconnu :
# systemctl status mongod mongod.service - MongoDB Loaded :chargé (/etc/systemd/system/mongod.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :inactif (mort )
- Nous sommes prêts à démarrer le service :
# systemctl start mongod
- Et vérifiez son statut. Si tout se passe bien, nous devrions voir quelque chose comme ceci :
# systemctl status mongod mongod.service - MongoDB Loaded :chargé (/etc/systemd/system/mongod.service ; désactivé ; préréglage du fournisseur :désactivé) Actif :actif (en cours d'exécution) depuis le jeu. 2019-01-03 17:01:48 CET ; Il y a 4 s PID principal :2993 (mongod) Tâches :23 (limite :12 544) Mémoire :45,3 Mo CGroup :/system.slice/mongod.service 2993 /opt/mongodb/bin/mongod --config /etc/mongod.conf
- Nous pouvons tester notre service avec
mongo shell
, une interface de ligne de commande livrée avec MongoDB. Pour pouvoir y accéder, nous devons inclure les binaires que nous avons extraits dans le$PATH
. En tant qu'administrateurs paresseux, nous ne le faisons qu'une seule fois, de manière permanente. Nous ajoutons la ligne suivante à/root/.bash_profile
, avant la dernière ligne "export PATH" :## mongodbPATH=$PATH:/opt/mongodb/bin
Et lancez le script :
# . ~/.bash_profile
- Nous démarrons le
mongo shell
:# mongoMongoDB shell version v4.0.5connexion à :mongodb://127.0.0.1:27017/?gssapiServiceName=mongodbSession implicite :session { "id" :UUID("8999342b-e313-48e6-92c4-bf6b07cee0e4") }Version du serveur MongoDB :4.0.5Bienvenue dans le shell MongoDB.Pour une aide interactive, tapez "help".[...]>
Il peut y avoir des avertissements de démarrage, comme des paramètres de pages volumineux, mais nous les ignorerons dans ce didacticiel.
- Sur le
mongo shell
, nous demanderons toutes les bases de données présentes :> dbtest
- Et passez au
test
fourni base de données :> utiliser les tests passés au test de la base de données
- Nous insérons des données de test (clé "x" avec la valeur "1") dans une collection créée à la volée :
> db.exampleCollection.insertOne( { x :1 } );{ "acknowledged" :vrai, "insertedId" :ObjectId("5c2e33040854f2d89326ae9c")}>
- Et enfin, nous recherchons toutes les données de la nouvelle collection, en vérifiant que notre paire clé-valeur est correctement stockée :
> db.getCollection("exampleCollection").find().pretty();{ "_id " :IdObjet("5c2e4c2fd129ceef6a6c6112"), "x" :1 }>