MongoDB, Partie 1. Installation et configuration (Windows, macOS, Raspberry Pi) • Domotique et objets connectés à faire soi-même

MongoDB est une base de données Open Source orientée document. Contrairement à une base de données relationnelle classique dans laquelle les données sont organisées d’après un schéma (tables, champs, types de données) et mises en relation les unes avec les autres, on stocke les données dans une base MongoDB dans un document dans le style JSON, c’est à dire sous la forme clé:valeur.

Pourquoi utiliser MongoDB ?

Le principal avantage des bases de données NoSQL est l’absence de schéma. Il n’y a pas besoin de définir les tables, les champs de données (ni de type de donnée) et les relations entre les tables (champs). Une collection (l’équivalent d’une table) peut contenir différents documents. Chaque document pouvant avoir un nombre de champ, une taille, un contenu différent d’un document à l’autre. Cette architecture présente de nombreux autres avantages :

  • La structure d’un document peut évoluer, la structure n’est pas figée. Il suffit d’actualiser un document pour ajouter / supprimer une information. C’est beaucoup plus souple que de modifier les champs d’une base de données relationnelle.
  • Il n’y a pas de liaisons complexes entre les documents.
  • MongoDB est capable de faire des recherches complexes aussi simplement et efficacement qu’un requête SQL.
  • MongoDB est conçue pour supporter la montée en charge. MongoDB est adaptée aux très gros projets informatiques. Pour en savoir plus sur les performances, lisez cet article très complet publié sur le blog d’Ippon Technology.

Installer MongoDB sur Windows

Version de Windows testée : 10 (32 bits)

Avant de télécharger la version qui correspond à votre système, exécutez cette commande

C:\>wmic os get osarchitecture
OSArchitecture
64-bit
C:\>

Les versions 32 bit de MongoDB ne supportent que les bases de données de moins de 2GB. C’est largement suffisant pour faire des tests ou de petits développements personnels.

Téléchargez la dernière version de MongoDB depuis cette adresse https://www.mongodb.org/downloads depuis l’onglet Community Server.

Lancez l’installeur

On peut tout installer (Complete)

Ou uniquement les composants désirés (Custom). Compte tenu de la taille nécessaire (322MB), autant tout installer. Rien ne vous empêche de choisir un autre répertoire de d’installation. Depuis l’option Custom, cliquez sur Browse… pour indiquer (et créer si besoin) un autre dossier d’installation.

L’installation commence

L’installation est terminée, quittez l’installeur en cliquant sur Finish.

Les fichiers sont installés dans un répertoire MongoDB dans Progammes (Program Files). Un sous-répertoire est créé pour chaque version. Tous les programmes Mongo se trouverons par exemple au chemin suivant :

C:\Program Files\MongoDB\Server\3.2\bin

Maintenant, il faut ajouter ce chemin dans les variables d’environnement. Ouvrez le menu démarré et saisissez variable. Dans la liste des résultats, ouvrez “Modifier les variables d’environnement système”.

Dans la boîte de dialogue qui s’ouvre, ajoutez un point-virgule suivi du chemin vers les binaires. Validez en appuyant sur OK.

Maintenant, ouvrez le poste de travail et créez un répertoire data à la racine puis un répertoire db à l’intérieur. Vous pouvez aussi exécuter cette commande dans l’Invite de commande. On en profite pour créer un répertoire pour les journaux (log).

md \data\db
md \data\log

Démarrer MongoDB

Exécutez la commande suivante (sans oublier de corriger le chemin qui correspond à votre configuration) pour démarrer le serveur MongoDB. Il faut mettre le chemin entre guillemets s’il contient des espaces. Il faut indiquer le chemin vers la base de données (au premier lancement).

"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath C:\data\db --storageEngine=mmapv1

Au premier lancement de MongoDB, vous devrez autoriser l’accès depuis le pare-feu Windows.

La base de données est démarrée et prête à recevoir des connexions de clients sur le port 27017 par défaut.

Créer un fichier de configuration mongod.cfg

On peut aussi aller encore plus loin et créer un fichier de configuration mongod.cfg dans le répertoire Bin.

Ouvrez un éditeur de texte et collez cette configuration de base (adaptez les chemins et le storageEnegine qui correspond à votre configuration).

Enregistrez au format UTF-8. Si vous ne disposez pas de droits administrateur, enregistrez le fichier dans les documents puis déplacez le manuellement dans le répertoire Bin de MongoDB.

Une fois que tout est prêt, lancez mongod comme ceci.

"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe"

Pour connaître en détail toutes les options disponibles, allez sur cette page  https://docs.mongodb.com/v3.0/reference/configuration-options/

Installer le service MongoDB

Maintenant, nous voudrions bien que MongoDB se lance automatiquement au démarrage de Windows. C’est très facile, il suffit d’installer le service.

Ouvrez un Invite de Commande en mode Administrateur

Créer le service à l’aide de sc.exe

La première méthode consiste à utiliser sc.exe. Exécutez la commande

sc.exe create MongoDB binPath= "C:\mongodb\bin\mongod.exe --service --config=\"C:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

Le message [sc]  createService réussite(s) est renvoyée si le service a correctement été ajouté.

Supprimer le service avec sc.exe

La commande suivante permet de supprimer le service

sc.exe delete

Ce qui donne par exemple dans notre cas

sc.exe delete MongoDB

Créer le service avec l’option install

La commande mongod accepte l’option –install pour installer MongoDB comme un service Windows ou –remove pour désinstaller le service ainsi que

–install : lance l’installation de MongoDB comme un service Windows

–remove : supprime le service Windows

–serviceName : Nom du service Windows (uniquement des caractères alphanumériques sans espace)

–serviceDisplayName : (optionnel) Nom affiché dans la liste des services. Mettre en guillemets si le nom contient des espaces.

–serviceDescription   : (optionnel) courte description sur le service. Mettre en guillemets s’il y a des espaces.

–logpath : (obligatoire pour install) chemin vers le journal

–journal (conseillé) : active le journal

Ce qui donne par exemple

C:\MongoDB\bin\mongod.exe --install --serviceName "MongoDB" --serviceDisplayName "MongoDB" --serviceDescription "MongoDB sur le port 27017" --journal --logpath c:\data\log\mongo.log

Supprimer le service MongoDB

Pour supprimer le service il suffit d’exécuter cette commande.

Comment vérifier que le service fonctionne

Depuis le menu démarré, recherchez et lancez le gestionnaire de Services.

Le service MongoDB (selon le nom attribué) est présent dans la liste mais il ne démarre pas automatiquement après l’installation.

Pour cela faite un clic droit puis Démarrer

Maintenant il est en cours d’exécution

Maintenant vous pouvez démarrer un client avec la commande mongo.

Installer MongoDB sur macOS

Version macOS testée : 10.11.6 (El Captain) sur un Mac Mini 2011.

MongoDB s’installe sur macOS à l’aide de Brew. Brew est un gestionnaire de paquets pour Mac (page officielle du projet).

Ouvrez un Terminal et collez cette commande

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Répondez aux questions pour terminer l’installation de Brew sur votre Mac.

Un fois installé, exécutez cette commande pour installer MongoDB.

brew install mongodb

C’est fait.

Maintenant vous devez créer un répertoire pour les données

mkdir -p /data/db

Allez sur le finder et attribuez les droits de lecture et d’écriture (pour tous les utilisateurs) au dossier data. Cmd + I puis identifiez vous en appuyant sur le cadenas et enfin changez les droits.

Maintenant, démarrez avec l’option –dbpath au premier démarrage

mongod --dbpath /data/db

Installer MongoDB sur Raspberry Pi

Sur Raspberry Pi, MongoDB est encore limité à la version 32 bits, et donc par conséquent à une base de données de 2GB maximum. Il sera donc réservé à des tests, de l’apprentissage ou de petites applications

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-server

Les fichiers binaires se trouvent dans le répertoire /usr/bin/. Les fichiers de données se trouvent dans le dossier /var/lib/mongodb/

Le service MongoDB démarre dès la fin de l’installation. Pour vérifier s’il est bien démarré, exécutez la commande

sudo service --status-all

Un plus entre les crochets signifie que le service est bien lancé.

Ou sudo service mongodb status

pi@raspberrypi:~ $ sudo service mongodb status
● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled)
   Active: inactive (dead) since jeu. 2016-11-03 14:59:52 CET; 2min 10s ago
     Docs: man:mongod(1)
  Process: 458 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=0/SUCCESS)
 Main PID: 458 (code=exited, status=0/SUCCESS)

nov. 03 14:50:19 raspberrypi systemd[1]: Started An object/document-oriented database.
nov. 03 14:50:22 raspberrypi mongod[458]: all output going to: /var/log/mongodb/mongo...og
nov. 03 14:59:52 raspberrypi systemd[1]: Stopping An object/document-oriented database...
nov. 03 14:59:52 raspberrypi systemd[1]: Stopped An object/document-oriented database.
Hint: Some lines were ellipsized, use -l to show in full.

S’il n’est pas démarré, exécutez cette commande

sudo service mongodb start

Pour interrompre le service

sudo service mongodb stop

Vous pouvez maintenant accéder à la base depuis le client mongo.

Premiers pas avec l’environnement MongoDB

MongoDB est constitué d’une partie serveur (mongod) et d’un client (mongo) que nous découvrirons plus en détail dans la seconde partie de cette série d’articles. Plusieurs utilitaires sont aussi disponibles (monitoring, import/export, performance…).

Programme (commande) Fonction
mongod Le serveur de base de données MongoDB
mongo Client. Permet d’exécuter toutes les commandes Mongo depuis un Shell
mongostat, mongotop Utilitaires de monitoring
mongodump, mongorestore, mongoexport, mongoimport Utilitaires d’import / export
bsondump, mongofiles, mongooplog, mongoperf Utilitaires divers

Sources

Avez-vous aimé cet article ?