GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer MongoDB à partir de la source (et en utilisant YUM) sous Linux

Le nom MongoDB est dérivé de Humongo nous DB.

Il s'agit d'une base de données NoSQL open source. MongoDB est développé et supporté commercialement par la société 10gen.

MongoDB se concentre sur l'évolutivité et les performances. MongoDB est une base de données orientée document sans schéma. Cela stocke les données sous forme d'objets JSON. Contrairement à la base de données SQL traditionnelle, vous n'avez pas besoin de définir un schéma. Le schéma est intégré dans le document de données lui-même, ce qui vous permet de modifier facilement le schéma à tout moment sans vous soucier de modifier l'un des documents précédents qui sont chargés. Des performances et une évolutivité élevées sont possibles car il n'y a pas de jointures ni de transactions multi-documents effectuées sur MongoDB. Cela permet également une réplication sur les serveurs avec la possibilité de basculer automatiquement. Vous pouvez également évoluer sur plusieurs serveurs pour une haute disponibilité.

Cet article est la 1ère partie d'une série d'articles sur MongoDB.

Installer MongoDB en utilisant YUM

L'installation de MongoDB à l'aide de yum est assez simple.

Configurer le référentiel Yum 10gen

Tout d'abord, ajoutez le référentiel 10gen à votre yum comme indiqué ci-dessous.

# vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1

Remarque :ce qui précède concerne un système 64 bits. Si vous utilisez un système 32 bits, faites pointer la baseurl dans le fichier ci-dessus vers http://downloads-distro.mongodb.org/repo/redhat/os/i686

Maintenant, exécutez "yum info" pour afficher les packages mongo-10gen et mongo-10gen-server.

# yum info mongo-10gen
Name        : mongo-10gen
Arch        : x86_64
Version     : 2.2.2
Release     : mongodb_1
Size        : 43 M
Repo        : 10gen
Summary     : mongo client shell and tools
URL         : http://www.mongodb.org
License     : AGPL 3.0

# yum info mongo-10gen-server
Name        : mongo-10gen-server
Arch        : x86_64
Version     : 2.2.2
Release     : mongodb_1
Size        : 6.7 M
Repo        : 10gen
Summary     : mongo server, sharding server, and support scripts
URL         : http://www.mongodb.org
License     : AGPL 3.0

Installer les packages client et serveur Mongo

Installez ces deux packages mongo-* comme indiqué ci-dessous.

# yum install mongo-10gen mongo-10gen-server
  Installing : mongo-10gen-2.2.2-mongodb_1.x86_64
  Installing : mongo-10gen-server-2.2.2-mongodb_1.x86_64

Vérifier le fichier mongod.conf

Cela installe également le fichier /etc/mongod.conf par défaut et le script de démarrage /etc/rc.d/init.d/mongod

Le fichier /etc/mongod.conf contient les valeurs par défaut suivantes. Comme vous le voyez ici, les fichiers de la base de données mongo seront créés dans le répertoire /var/lib/mongo. Si vous souhaitez que les fichiers DB soient créés dans un répertoire différent, modifiez le répertoire dbpath dans le fichier mongod.conf.

# cat /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/var/lib/mongo
pidfilepath = /var/run/mongodb/mongod.pid

Démarrer le serveur MongoDB

Démarrez le service mongod comme indiqué ci-dessous.

# service mongod start
Starting mongod: forked process: 15968
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

Consultez les fichiers journaux pour vous assurer que MongoDB a démarré avec succès. Par défaut, le serveur MongoDB s'exécute sur le port 27017.

# cat /var/log/mongo/mongod.log
Sat Jan 19 10:57:03 [initandlisten] MongoDB starting : pid=15968 port=27017 dbpath=/var/lib/mongo 64-bit host=centos
Sat Jan 19 10:57:03 [initandlisten] db version v2.2.2, pdfile version 4.5
Sat Jan 19 10:57:03 [initandlisten] git version: d1b43b61a5308c4ad0679d34b262c5af9d664267
Sat Jan 19 10:57:03 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Sat Jan 19 10:57:03 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Sat Jan 19 10:57:03 [initandlisten] journal dir=/var/lib/mongo/journal
Sat Jan 19 10:57:03 [initandlisten] recover : no journal files present, no recovery needed
Sat Jan 19 10:57:03 [websvr] admin web console waiting for connections on port 28017
Sat Jan 19 10:57:03 [initandlisten] waiting for connections on port 27017

Utilisez Mongo Shell pour vous connecter à MongoDB

Tapez "mongo" pour lancer le shell mongo et connectez-vous à MongoDB pour effectuer une opération de base de données. Cela affichera l'invite ">" où vous pourrez taper les commandes du client mongo.

# mongo
MongoDB shell version: 2.2.2
connecting to: test
Welcome to the MongoDB shell.
>

La commande suivante insère un exemple de document dans la collection MongoDB appelée "sites". Ceci est similaire à la commande SQL "INSERT into".

> doc1 = { name : "ramesh" };
> db.sites.insert( doc1 );

Ce qui suit affichera tous les documents de la collection "sites" de MongoDB. Ceci est similaire à la commande SQL "SELECT * from".

> db.sites.find()
{ "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }

Installer MongoDB à partir de la source

Si vous souhaitez installer MongoDB à partir de la source, suivez les étapes mentionnées ci-dessous.

Installer les prérequis

Assurez-vous que gcc-c++ et le paquet glibc-devel sont déjà installés. MongoDB utilise scons pour construire le code source. Assurez-vous donc que le package scons est déjà installé.

# rpm -qa | egrep 'gcc-c++|glibc-devel|scons'
gcc-c++-4.4.6-4.el6.x86_64
glibc-devel-2.12-1.80.el6_3.6.x86_64
scons-2.0.1-1.el6.noarch

Si vous n'avez pas ces prérequis, installez-les.

# yum install gcc-c++ glibc-devel scons

Télécharger MongoDB

Accédez à la page de téléchargement de MongoDB et téléchargez le code source. La version stable actuelle de MongoDB est la 2.2.2.

Une fois que vous avez le lien de téléchargement, vous pouvez également utiliser wget pour télécharger directement le code source.

cd /usr/src
wget http://downloads.mongodb.org/src/mongodb-src-r2.2.2.tar.gz
tar xvfz mongodb-src-r2.2.2.tar.gz
cd mongodb-src-r2.2.2

Construire MongoDB en utilisant Scons

Scons est similaire à faire. Tapez "scons all" pour construire MongoDB à partir des sources.

Veuillez noter que lorsque vous exécutez "scons all", il n'utilise qu'un seul processeur et n'exécute qu'un seul travail à la fois pour construire le code source. Donc, ce sera lent. Si vous voulez que scons utilise tout le processeur et exécute plusieurs tâches lors de la construction, vous devez spécifier le nombre de tâches qu'il doit exécuter.

Sur mon système, j'ai 8 cœurs. Donc, j'ai exécuté "scons -j 8 all" comme indiqué ci-dessous pour construire.

# scons -j 8 all
scons: Reading SConscript files ...
scons version: 2.0.1
python version: 2 6 6 'final' 0
Checking whether the C++ compiler works(cached) yes
Checking for C header file unistd.h... (cached) yes
Checking whether clock_gettime is declared... (cached) yes
Checking for C library rt... (cached) yes
Checking for C++ header file execinfo.h... (cached) yes
Checking whether backtrace is declared... (cached) yes
Checking whether backtrace_symbols is declared... (cached) yes
Checking for C library pcap... (cached) no
Checking for C library wpcap... (cached) no
Checking if __malloc_hook is declared volatile... (cached) no
scons: done reading SConscript files.
..
Install file: "build/linux2/normal/mongo/test" as "test"
scons: done building targets.

Une fois que vous avez construit le code source, nous devrions l'installer. Utilisez "scons install" pour installer MongoDB. Par défaut, il l'installera sous /usr/local/bin. Si vous souhaitez installer MongoDB dans un répertoire différent, utilisez l'option "–prefix".

Pour installer MongoDB sous le répertoire /opt/mongo, exécutez la commande scons suivante.

# scons --prefix=/opt/mongo install

Comme vous le voyez ci-dessous, il a installé MongoDB sous le répertoire /opt/mongo.

# ls -l /opt/mongo/
total 12
drwxr-xr-x. 2 root root 4096 Jan 19 13:33 bin
drwxr-xr-x. 3 root root 4096 Jan 19 13:33 include
drwxr-xr-x. 2 root root 4096 Jan 19 13:33 lib

Créer le fichier /etc/mongod.conf

Créez le fichier de configuration suivant qui sera utilisé par le serveur MongoDB lors du démarrage.

# cat /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/var/lib/mongo
pidfilepath = /var/run/mongodb/mongod.pid

Dans le fichier ci-dessus, le paramètre dbpath indique que lorsque nous démarrons la base de données MongoDB, il créera toutes les bases de données requises sous le répertoire /var/lib/mongo. Vous pouvez modifier ce chemin en conséquence.

Créez le répertoire référencé par le dbpath.

# mkdir -p /var/lib/mongo

Démarrer le démon MongoDB

Ajoutez /opt/mongo/bin/ à la variable PATH.

# export $PATH=$PATH:/opt/mongo/bin/

Démarrez mongodb comme indiqué ci-dessous en transmettant l'emplacement du fichier de configuration à l'aide de l'option -f.

# mongod -f /etc/mongod.conf
forked process: 20127
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

Si vous utilisez simplement "mongod" sans aucun argument, cela démarrera le processus au premier plan. Lorsque vous fermez votre terminal, votre serveur MongoDB s'arrête également. Assurez-vous donc d'exécuter mongod avec l'option -f comme indiqué ci-dessus.

Vérifiez les fichiers journaux pour vous assurer qu'il a démarré correctement. Par défaut, le serveur MongoDB s'exécute sur le port 27017.

# cat /var/log/mongo/mongod.log
Sat Jan 19 13:48:44 [initandlisten] MongoDB starting : pid=20127 port=27017 dbpath=/var/lib/mongo 64-bit host=centos
Sat Jan 19 13:48:44 [initandlisten] db version v2.2.2, pdfile version 4.5
Sat Jan 19 13:48:44 [initandlisten] git version: nogitversion
Sat Jan 19 13:48:44 [initandlisten] build info: Linux centos 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64 BOOST_LIB_VERSION=1_49
Sat Jan 19 13:48:44 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Sat Jan 19 13:48:44 [initandlisten] journal dir=/var/lib/mongo/journal
Sat Jan 19 13:48:44 [initandlisten] recover : no journal files present, no recovery needed
Sat Jan 19 13:48:44 [websvr] admin web console waiting for connections on port 28017
Sat Jan 19 13:48:44 [initandlisten] waiting for connections on port 27017

Utilisez Mongo Shell pour vous connecter à MongoDB

Tapez "mongo" pour lancer le shell mongo et connectez-vous à MongoDB pour effectuer une opération de base de données. Cela affichera l'invite ">" où vous pourrez taper les commandes du client mongo.

# mongo
MongoDB shell version: 2.2.2
connecting to: test
Welcome to the MongoDB shell.
>

La commande suivante insère un exemple de document dans la collection MongoDB appelée "sites". Ceci est similaire à la commande SQL "INSERT into".

> doc1 = { name : "ramesh" };
> db.sites.insert( doc1 );

Ce qui suit affichera tous les documents de la collection "sites" de MongoDB. Ceci est similaire à la commande SQL "SELECT * from".

> db.sites.find()
{ "_id" : ObjectId("50f72809a8e3c7a3aba2bf15"), "name" : "ramesh" }

Dans le prochain article de cette série, nous expliquerons plusieurs commandes MongoDB avec des exemples.


Linux
  1. Comment installer phpMyAdmin sous Linux en utilisant le code source

  2. Installer Apache 2 à partir de la source sur Linux

  3. Comment installer et configurer Nginx à partir de la source sous Linux

  4. Comment compiler et installer un logiciel à partir du code source sous Linux

  5. Comment installer TBB à partir de la source sur Linux et le faire fonctionner

Comment installer un logiciel à partir de la source sous Linux

Comment installer un logiciel à partir du code source… et le supprimer ensuite

Comment installer MongoDB sur Rocky Linux et AlmaLinux

Comment installer ou mettre à niveau LAMP :Linux, Apache, MySQL et PHP avec Yum

9 étapes pour installer et configurer PostgreSQL à partir de la source sous Linux

Comment installer un logiciel à partir du code source dans votre système Linux