GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare MongoDB dal sorgente (e usando YUM) su Linux

Il nome MongoDB deriva da Humongo noi DB.

È un database NoSQL open source. MongoDB è sviluppato e supportato commercialmente dalla società 10gen.

L'obiettivo di MongoDB è sulla scalabilità e sulle prestazioni. MongoDB è un database orientato ai documenti privo di schemi. Questo memorizza i dati come oggetti JSON. A differenza del database SQL tradizionale, non è necessario definire uno schema. Lo schema è incorporato nel documento di dati stesso, semplificando la modifica dello schema in qualsiasi momento senza doversi preoccupare di modificare i precedenti documenti caricati. Prestazioni elevate e scalabilità sono possibili perché non ci sono join e nessuna transazione multi-documento eseguita su MongoDB. Ciò fornisce anche la replica tra i server con la possibilità di eseguire automaticamente il failover. Puoi anche scalare su più server per una disponibilità elevata.

Questo articolo è la prima parte di una serie di articoli su MongoDB.

Installa MongoDB utilizzando YUM

L'installazione di MongoDB utilizzando yum è abbastanza semplice.

Imposta il repository Yum 10gen

Innanzitutto, aggiungi il repository 10gen al tuo yum come mostrato di seguito.

# 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

Nota:quanto sopra è per un sistema a 64 bit. Se stai usando un sistema a 32 bit, punta l'url di base nel file sopra a http://downloads-distro.mongodb.org/repo/redhat/os/i686

Ora, esegui "yum info" per visualizzare i pacchetti mongo-10gen e 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

Installa i pacchetti client e server Mongo

Installa questi due pacchetti mongo-* come mostrato di seguito.

# 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

Verifica il file mongod.conf

Questo installa anche il file /etc/mongod.conf predefinito e lo script di avvio /etc/rc.d/init.d/mongod

Il file /etc/mongod.conf contiene i seguenti valori predefiniti. Come puoi vedere qui, i file del database di mongo verranno creati nella directory /var/lib/mongo. Se vuoi che i file DB vengano creati in una directory diversa, cambia la directory dbpath nel file 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

Avvia il server MongoDB

Avvia il servizio mongod come mostrato di seguito.

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

Visualizza i file di registro per assicurarti che MongoDB sia stato avviato correttamente. Per impostazione predefinita, il server MongoDB viene eseguito sulla porta 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

Utilizza Mongo Shell per connetterti a MongoDB

Digitare "mongo" per avviare la shell mongo e connettersi a MongoDB per eseguire alcune operazioni sul database. Verrà visualizzato il prompt "> " in cui è possibile digitare i comandi del client mongo.

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

Il comando seguente inserirà un documento di esempio nella raccolta MongoDB chiamata "siti". È simile al comando SQL "INSERT into".

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

Di seguito verranno visualizzati tutti i documenti nella raccolta "siti" di MongoDB. È simile al comando SQL "SELECT * from".

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

Installa MongoDB dal sorgente

Se desideri installare MongoDB dal sorgente, segui i passaggi indicati di seguito.

Installa i prerequisiti

Assicurati che gcc-c++ e il pacchetto glibc-devel siano già installati. MongoDB usa scons per costruire il codice sorgente. Quindi, assicurati che il pacchetto scons sia già installato.

# 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

Se non hai questi prerequisiti, installalo.

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

Scarica MongoDB

Vai alla pagina dei download di MongoDB e scarica il codice sorgente. L'attuale versione stabile di MongoDB è la 2.2.2.

Una volta ottenuto il link per il download, puoi anche utilizzare wget per scaricare direttamente il codice sorgente.

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

Crea MongoDB usando Scons

Scons è simile a fare. Digita "scons all" per creare il MongoDB dal sorgente.

Tieni presente che quando esegui "scons all", utilizza solo una CPU ed esegue solo un lavoro alla volta per creare il codice sorgente. Quindi, sarà lento. Se vuoi che scons utilizzi tutta la CPU ed esegua più lavori durante la compilazione, devi specificare il numero di lavori che dovrebbe eseguire.

Sul mio sistema ho 8 core. Quindi, ho eseguito "scons -j 8 all" come mostrato di seguito per creare.

# 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.

Una volta creato il codice sorgente, dovremmo installarlo. Usa "scons install" per installare MongoDB. Per impostazione predefinita, lo installerà in /usr/local/bin. Se desideri installare MongoDB in una directory diversa, usa l'opzione “–prefix”.

Per installare MongoDB nella directory /opt/mongo, eseguire il seguente comando scons.

# scons --prefix=/opt/mongo install

Come puoi vedere di seguito, ha installato MongoDB nella directory /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

Crea il file /etc/mongod.conf

Crea il seguente file di configurazione che verrà utilizzato dal server MongoDB durante l'avvio.

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

Nel file sopra, il parametro dbpath indica che quando avviamo il database MongoDB, creerà tutti i database richiesti nella directory /var/lib/mongo. Puoi modificare questo percorso di conseguenza.

Crea la directory a cui fa riferimento il dbpath.

# mkdir -p /var/lib/mongo

Avvia il demone MongoDB

Aggiungi /opt/mongo/bin/ alla variabile PATH.

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

Avvia mongodb come mostrato di seguito passando il percorso del file di configurazione usando l'opzione -f.

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

Se usi semplicemente "mongod" senza alcun argomento, avvierà il processo in primo piano. Quando chiudi il tuo terminale, anche il tuo server MongoDB si fermerà. Quindi, assicurati di eseguire mongod con l'opzione -f come mostrato sopra.

Verifica i file di registro per assicurarti che siano stati avviati correttamente. Per impostazione predefinita, il server MongoDB viene eseguito sulla porta 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

Utilizza Mongo Shell per connetterti a MongoDB

Digitare "mongo" per avviare la shell mongo e connettersi a MongoDB per eseguire alcune operazioni sul database. Verrà visualizzato il prompt "> " in cui è possibile digitare i comandi del client mongo.

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

Il comando seguente inserirà un documento di esempio nella raccolta MongoDB chiamata "siti". È simile al comando SQL "INSERT into".

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

Di seguito verranno visualizzati tutti i documenti nella raccolta "siti" di MongoDB. È simile al comando SQL "SELECT * from".

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

Nel prossimo articolo di questa serie, spiegheremo diversi comandi MongoDB con esempi.


Linux
  1. Come installare phpMyAdmin in Linux usando il codice sorgente

  2. Installa Apache 2 da Source su Linux

  3. Come installare e configurare Nginx dal sorgente su Linux

  4. Come compilare e installare software dal codice sorgente su Linux

  5. Come costruire e installare GLFW 3 e usarlo in un progetto Linux

Come installare il software dal sorgente in Linux

Come installare il software dal codice sorgente... e rimuoverlo in seguito

Come installare MongoDB su Rocky Linux e AlmaLinux

Come installare o aggiornare LAMP:stack Linux, Apache, MySQL e PHP utilizzando Yum

9 passaggi per installare e configurare PostgreSQL dal sorgente su Linux

Come installare il software dal codice sorgente nel tuo sistema Linux