MongoDB est un programme de base de données NoSQL orienté document multiplateforme qui utilise des documents de type JSON avec des schémas facultatifs. MongoDB est développé par MongoDB Inc. et sous licence publique côté serveur.
Au lieu de stocker des données dans des tableaux de lignes ou de colonnes comme les bases de données SQL, chaque enregistrement d'une base de données MongoDB est un document décrit en BSON, une représentation binaire des données. Les applications peuvent ensuite récupérer ces informations au format JSON.
Voici un simple document JSON décrivant un personnage historique.
{
"_id": 1,
"name": {
"first": "Ada",
"last": "Lovelace"
},
"title": "The First Programmer",
"interests": ["mathematics", "programming"]
}
Contenu associé
- Comment configurer l'authentification dans Mongodb
- Comment exécuter Mongodb avec Docker et Docker-Compose
- Comment installer Mongodb 5 dans Rocky Linux/Centos 8
- Comment installer Mongodb 5 dans Opensuse Leap 15.3
Prérequis
Pour suivre, assurez-vous d'avoir les éléments suivants :
- Un serveur Fedora 34/35 à jour
- Connaissance du terminal Linux
- Accès à Internet
- Accès racine au serveur ou utilisateur avec accès Sudo
Table des matières
- S'assurer que le serveur est à jour
- Installer MongoDB
- Autoriser le port MongoDB sur le pare-feu
- Démarrer et activer le service MongoDB
- Connexion à MongoDB et exécution de quelques commandes de test
- Désinstaller l'édition communautaire de MongoDB
1. S'assurer que le serveur est à jour
Avant de continuer, assurons-nous que nos dépôts et packages de service sont dans les dernières versions en mettant à jour à l'aide de cette commande :
sudo dnf -y update
2. Installation de Mongodb
MongoDB n'est pas disponible dans les repos Fedora 34/35 par défaut. Pour cette installation, nous allons télécharger le .rpm
fichiers directement depuis le référentiel MongoDB. Les téléchargements sont organisés par version de Red Hat/CentOS (par exemple 8
), puis la version de MongoDB (par exemple 5.0
), puis architecture (par exemple x86_64
).
Téléchargeons le serveur MongoDB en utilisant cette commande :
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-org-server-5.0.3-1.el8.x86_64.rpm
Puis installez avec dnf :
sudo dnf install -y ./mongodb-org-server-5.0.3-1.el8.x86_64.rpm
Installons également le shell MongoDB et installons-le à l'aide de ces commandes :
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-org-shell-5.0.3-1.el8.x86_64.rpm
Installez ensuite :
sudo dnf install -y ./mongodb-org-shell-5.0.3-1.el8.x86_64.rpm
Enfin, téléchargeons et installons le Mongosh.
curl -LO https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/5.0/x86_64/RPMS/mongodb-mongosh-1.1.1.el8.x86_64.rpm
Ensuite, installez
sudo dnf install -y ./mongodb-mongosh-1.1.1.el8.x86_64.rpm
Vous pouvez vérifier la version de MongoDB installée à l'aide de la commande suivante :
$ mongo -version
MongoDB shell version v5.0.3
Build Info: {
"version": "5.0.3",
"gitVersion": "657fea5a61a74d7a79df7aff8e4bcf0bc742b748",
"openSSLVersion": "OpenSSL 1.1.1l FIPS 24 Aug 2021",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "rhel80",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
On peut aussi vérifier la version du Mongosh :
$ mongosh -version
1.1.1
3. Autoriser le port MongoDB sur le pare-feu
Si vous avez un firewalld
actif service sur votre serveur et souhaitez que le service MongoDB soit accessible sur le réseau, autorisez le port 27017/tcp
:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
Vous pouvez également limiter l'accès en fonction de l'adresse source
sudo firewall-cmd --permanent --add-rich-rule "rule family="ipv4" \
source address="10.1.0.0/16" port protocol="tcp" port="27017" accept
4. Démarrage et activation du service MongoDB
Une fois le service installé, il ne sera pas démarré par défaut. Démarrez le service mongodb à l'aide de cette commande :
sudo systemctl start mongod
Confirmez que le service est opérationnel en vérifiant son état :
$ sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-11-03 14:31:03 UTC; 21min ago
Docs: https://docs.mongodb.org/manual
Main PID: 74348 (mongod)
Memory: 61.5M
CPU: 4.278s
CGroup: /system.slice/mongod.service
└─74348 /usr/bin/mongod -f /etc/mongod.conf
Nov 03 14:31:02 new-cloud systemd[1]: Starting MongoDB Database Server...
Nov 03 14:31:02 new-cloud mongod[74346]: about to fork child process, waiting until server is ready for connections.
Nov 03 14:31:02 new-cloud mongod[74348]: forked process: 74348
Nov 03 14:31:03 new-cloud mongod[74346]: child process started successfully, parent exiting
Nov 03 14:31:03 new-cloud systemd[1]: Started MongoDB Database Server.
Notre service mongodb est opérationnel. Permettons-lui de démarrer au démarrage à l'aide de cette commande :
sudo systemctl enable mongod
5. Connexion à Mongodb et exécution de quelques commandes de test
Utilisez la commande mongo pour vous connecter au shell mongo.
$ mongo --port 27017
MongoDB shell version v5.0.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("3c093393-8154-44d4-97b5-7b02ddebd7bd") }
MongoDB server version: 5.0.3
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
We recommend you begin using "mongosh".
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com
---
The server generated these startup warnings when booting:
2021-11-03T14:31:02.695+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-11-03T14:31:03.626+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> db.version()
5.0.3
Exécutons quelques commandes de test pour confirmer son bon fonctionnement :
> use citizix_db;
switched to db citizix_db
> db.users.save({
... name: "etowett",
... location: "Arctic Vault"
... });
WriteResult({ "nInserted" : 1 })
>
> db.users.find();
{ "_id" : ObjectId("6182a27289aefc6a3f30d05a"), "name" : "etowett", "location" : "Arctic Vault" }
6. Désinstallez l'édition communautaire de MongoDB
Pour supprimer complètement MongoDB d'un système, vous devez supprimer les applications MongoDB elles-mêmes, les fichiers de configuration et tous les répertoires contenant des données et des journaux.
Ce processus sera complètement supprimer MongoDB, sa configuration et tous bases de données. Ce processus n'est pas réversible, assurez-vous donc que toute votre configuration et vos données sont sauvegardées avant de continuer.
La section suivante vous guide à travers les étapes nécessaires.
Arrêter MongoDB
Arrêtez le mongod
processus en exécutant la commande suivante :
sudo service mongod stop
Supprimer les packages.
Supprimez tous les packages MongoDB que vous aviez précédemment installés.
sudo zypper remove $(rpm -qa | grep mongodb-org)
Supprimer les répertoires de données.
Supprimez les bases de données MongoDB et les fichiers journaux.
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo
Conclusion
Dans ce guide, nous avons réussi à installer et à effectuer certaines opérations de base avec MongoDB sur notre serveur Fedora 34/35.