GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar MongoDB desde la fuente (y usando YUM) en Linux

El nombre MongoDB se deriva de Humongo nosotros base de datos.

Es una base de datos NoSQL de código abierto. MongoDB está desarrollado y respaldado comercialmente por la empresa 10gen.

El enfoque de MongoDB está en la escalabilidad y el rendimiento. MongoDB es una base de datos orientada a documentos sin esquemas. Esto almacena datos como objetos JSON. A diferencia de la base de datos SQL tradicional, no necesita definir un esquema. El esquema está incrustado en el propio documento de datos, lo que facilita cambiar el esquema en cualquier momento sin preocuparse por cambiar cualquiera de los documentos anteriores que se cargan. El alto rendimiento y la escalabilidad son posibles porque no hay uniones y no se realizan transacciones de documentos múltiples en MongoDB. Esto también proporciona replicación entre servidores con la capacidad de conmutación por error automática. También puede escalar entre servidores para una alta disponibilidad.

Este artículo es la primera parte de una serie de artículos sobre MongoDB.

Instalar MongoDB usando YUM

Instalar MongoDB usando yum es bastante sencillo.

Configurar el repositorio 10gen Yum

Primero, agregue el repositorio 10gen a su yum como se muestra a continuación.

# 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:Lo anterior es para un sistema de 64 bits. Si está utilizando un sistema de 32 bits, apunte la baseurl en el archivo anterior a http://downloads-distro.mongodb.org/repo/redhat/os/i686

Ahora, ejecute "yum info" para ver los paquetes mongo-10gen y 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

Instalar paquetes de servidor y cliente de Mongo

Instale estos dos paquetes mongo-* como se muestra a continuación.

# 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

Verificar archivo mongod.conf

Esto también instala el archivo predeterminado /etc/mongod.conf y el script de inicio /etc/rc.d/init.d/mongod

El archivo /etc/mongod.conf contiene los siguientes valores predeterminados. Como puede ver aquí, los archivos de la base de datos mongo se crearán en el directorio /var/lib/mongo. Si desea que los archivos DB se creen en un directorio diferente, cambie el directorio dbpath en el archivo 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

Iniciar servidor MongoDB

Inicie el servicio mongod como se muestra a continuación.

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

Vea los archivos de registro para asegurarse de que MongoDB se inició correctamente. Por defecto, el servidor MongoDB se ejecuta en el puerto 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

Utilice Mongo Shell para conectarse a MongoDB

Escriba "mongo" para iniciar el shell de mongo y conectarse a MongoDB para realizar alguna operación de base de datos. Esto mostrará el indicador ">" donde puede escribir los comandos del cliente mongo.

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

El siguiente comando insertará un documento de muestra en la colección de MongoDB llamado "sitios". Esto es similar al comando SQL "INSERTAR en".

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

A continuación, se mostrarán todos los documentos en la colección de "sitios" de MongoDB. Esto es similar al comando SQL "SELECCIONAR * de".

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

Instalar MongoDB desde el origen

Si desea instalar MongoDB desde la fuente, siga los pasos que se mencionan a continuación.

Instalar requisitos previos

Asegúrese de que los paquetes gcc-c++ y glibc-devel ya estén instalados. MongoDB usa scons para construir el código fuente. Por lo tanto, asegúrese de que el paquete scons ya esté instalado.

# 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 no tiene estos requisitos previos, instálelo.

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

Descargar MongoDB

Vaya a la página de descargas de MongoDB y descargue el código fuente. La versión estable actual de MongoDB es 2.2.2.

Una vez que tenga el enlace de descarga, también puede usar wget para descargar directamente el código fuente.

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

Construir MongoDB usando Scons

Scons es similar a hacer. Escriba "scons all" para compilar MongoDB desde la fuente.

Tenga en cuenta que cuando ejecuta "scons all", utiliza solo una CPU y ejecuta solo un trabajo a la vez para compilar el código fuente. Entonces, será lento. Si desea que scons use toda la CPU y ejecute varios trabajos mientras construye, debe especificar la cantidad de trabajos que debe ejecutar.

En mi sistema, tengo 8 núcleos. Entonces, ejecuté "scons -j 8 all" como se muestra a continuación para compilar.

# 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 vez que haya compilado el código fuente, debemos instalarlo. Use "scons install" para instalar MongoDB. Por defecto lo instalará en /usr/local/bin. Si desea instalar MongoDB en un directorio diferente, use la opción “–prefijo”.

Para instalar MongoDB en el directorio /opt/mongo, ejecute el siguiente comando scons.

# scons --prefix=/opt/mongo install

Como puede ver a continuación, ha instalado MongoDB en el directorio /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

Crear archivo /etc/mongod.conf

Cree el siguiente archivo de configuración que utilizará el servidor MongoDB durante el inicio.

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

En el archivo anterior, el parámetro dbpath indica que cuando iniciamos la base de datos MongoDB, creará las bases de datos requeridas en el directorio /var/lib/mongo. Puede cambiar esta ruta en consecuencia.

Cree el directorio al que hace referencia dbpath.

# mkdir -p /var/lib/mongo

Inicie el demonio MongoDB

Agregue /opt/mongo/bin/ a la variable PATH.

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

Inicie mongodb como se muestra a continuación pasando la ubicación del archivo de configuración usando la opción -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 solo usa "mongod" sin ningún argumento, comenzará el proceso en primer plano. Cuando cierre su terminal, su servidor MongoDB también se detendrá. Por lo tanto, asegúrese de ejecutar mongod con la opción -f como se muestra arriba.

Verifique los archivos de registro para asegurarse de que se inició correctamente. Por defecto, el servidor MongoDB se ejecuta en el puerto 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

Utilice Mongo Shell para conectarse a MongoDB

Escriba "mongo" para iniciar el shell de mongo y conectarse a MongoDB para realizar alguna operación de base de datos. Esto mostrará el indicador ">" donde puede escribir los comandos del cliente mongo.

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

El siguiente comando insertará un documento de muestra en la colección de MongoDB llamado "sitios". Esto es similar al comando SQL "INSERTAR en".

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

A continuación, se mostrarán todos los documentos en la colección de "sitios" de MongoDB. Esto es similar al comando SQL "SELECCIONAR * de".

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

En el próximo artículo de esta serie, explicaremos varios comandos de MongoDB con ejemplos.


Linux
  1. Instale Apache 2 desde la fuente en Linux

  2. Cómo instalar y configurar Nginx desde el origen en Linux

  3. Cómo compilar e instalar software desde el código fuente en Linux

  4. Cómo instalar Apache CouchDB en CentOS 6 (desde Source y EPEL)

  5. Cómo compilar e instalar GLFW 3 y usarlo en un proyecto de Linux

Cómo instalar software desde la fuente en Linux

Cómo instalar software desde el código fuente... y eliminarlo después

Cómo instalar MongoDB en Rocky Linux y AlmaLinux

Cómo instalar o actualizar LAMP:Linux, Apache, MySQL y PHP Stack usando Yum

9 pasos para instalar y configurar PostgreSQL desde el origen en Linux

Cómo instalar software desde el código fuente en su sistema Linux