Cómo instalar MongoDB en CentOS 6

En esta entrada veremos cómo instalar MongoDB en CentOS 6 paso a paso, de forma que puedas trabajar con este gran sistema de bases de datos NoSQL sobre tu servidor o VPS CentOS.

Antes de instalar MongoDB en CentOS 6

Si quieres seguir los pasos de esta guía de instalación de MongoDB en CentOS 6 sólo será necesario cumplir los siguientes requisitos básicos:

  • Una máquina CentOS 6 lo más actualizada posible.
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Cómo configurar el repositorio oficial de MongoDB para CentOS 6

Vamos a configurar el repositorio oficial de MongoDB para CentOS 6 y así poder trabajar con la versión más reciente posible para esta versión de la distribución.

Empezaremos creando el archivo de configuración del repositorio:

~$ sudo nano /etc/yum.repos.d/mongodb.org-4.4.repo

El contenido será el siguiente:

[mongodb-org-4.4]
name=Repositorio de MongoDB para CentOS 6
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=http://www.mongodb.org/static/pgp/server-4.4.asc

Ya podemos guardar el archivo y actualizar las listas de paquetes para que se incluyan también los pertenecientes a MongoDB:

~$ sudo yum update

Cómo instalar MongoDB en CentOS 6

Para instalar MongoDB en CentOS 6 obtendremos el paquete mongodb-org con la herramienta yum:

~$ sudo yum install -y mongodb-org

Tras la descarga e instalación de MongoDB y sus dependencias se crea un nuevo servicio en CentOS 6, el servicio mongod, que no queda en ejecución, sino que tendremos que arrancarlo manualmente:

~$ sudo service mongod start

En cualquier momento podemos comprobar el estado del servicio con el comando service mongod status:

como instalar mongodb en centos 6

El servicio queda hablitado para su inicio automático con cada arranque de CentOS 6.

Cómo conectar a MongoDB en CentOS 6

Para conectar con MongoDB Server desde consola podemos usar el cliente mongo sin argumentos:

~$ mongo
MongoDB shell version v4.4.13
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("850f997d-fbe7-46cb-bd87-f85a30b52018") }
MongoDB server version: 4.4.13
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:
        ###: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        ###: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        ###: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        ###: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
---
---
        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()
---
>

Veremos bastante información al establecer la conexión, entre la que podemos destacar avisos sobre el uso de MongoDB sin contraseña y la disponibilidad de un servicio de estadísticas gratuito. Este último aviso se repetirá en cada conexión hasta que decidamos habilitarlo o deshabilitarlo.

Podemos deshabilitar el servicio de estadísticas con el comando db.disableMonitoring():

> db.disableFreeMonitoring()

O podemos habilitarlo si nos parece interesante:

> db.enableFreeMonitoring()

Podemos cerrar la conexión con el comando exit:

> exit

Cómo configurar MongoDB en CentOS 6

Para configurar MongoDB en CentOS 6 debemos trabajar sobre su archivo de configuración mongod.conf, que se encuentra en la ruta /etc/.

Acceso con contraseña

Editamos el archivo de configuración mongod.conf:

~$ sudo nano /etc/mongod.conf

Buscamos la directiva security:

...
#security:
...

La habilitaremos eliminando el carácter # al inicio de línea y añadiremos el apartado authorization con el valor enabled:

...
security:
  authorization: enabled
...

Para sangrar el texto en este archivo de configuración no se pueden usar tabulaciones, sino espacios en blanco.

Guardados los cambios hay que reiniciar el servicio:

~$ sudo service mongod restart

Crear un administrador para MongoDB en CentOS 6

Puede ser interesante crear un usuario con capacidades de administración, protegido por contraseña. Para ello iniciamos sesión anónima con el cliente mongo:

~$ mongo

Conectamos con la base de datos principal:

> use admin

Creamos el nuevo usuario administrador con contraseña:

> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})

Y cerramos la conexión:

> exit

Ya podemos iniciar sesión con el nuevo usuario administrador, usando el parámetro -u para especificar su nombre. En esta ocasión se nos solicitará contraseña:

~$ mongo -u instalador
MongoDB shell version v4.4.13
Enter password:
...
>

Veremos que ya no aparecen avisos de seguridad sobre posibilidad de accesos no autorizados.

Acceso remoto a MongoDB Server

Por defecto MongoDB sólo permite conexiones locales en CentOS 6, pero podemos configurar fácilmente el servicio para que admita conexiones remotas. Para ello editamos el archivo de configuración:

~$ sudo nano /etc/mongod.conf

Buscamos la directiva bindIp:

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
...

Cambiaremos su valor por 0.0.0.0:

...
  bindIp: 0.0.0.0
...

Guardamos los cambios y cerramos el archivo, y reiniciamos el servicio:

~$ sudo service mongod restart

Firewall

Para poder permitir conexiones entrantes al servicio MongoDB en CentOS 6 es necesario configurar el firewall, ya que suele estar activado por defecto.

Comprobamos el estado actual del firewall, viendo las reglas de entrada:

~$ sudo iptables -L INPUT --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
2    ACCEPT     icmp --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere
4    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
5    REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

En este ejemplo concreto vemos que la 5ª regla (línea nº 5) rechaza todo el tráfico entrante, por lo que las excepciones deberán añadirse antes de esta línea. Añadiremos la regla para MongoDB justo en esa posición:

~$ sudo iptables -I INPUT 5 -m state --state NEW -p tcp --dport 27017 -j ACCEPT

Y guardamos la configuración del firewall para hacerla permanente:

~$ sudo service iptables save

Cómo probar el acceso remoto

Desde otra máquina en red establecemos conexión con un cliente como mongo, utilizando el parámetro –host para indicar la dirección del servidor CentOS 6 y -u para el usuario:

~$ mongo --host centos6.local.lan -u instalador

Se nos solicitará la contraseña y podremos conectar para trabajar de forma remota.

instalar y configurar mongodb server en centos 6

Conclusión

Ahora que sabes cómo instalar MongoDB en CentOS 6 ya puedes trabajar con este motor de bases de datos NoSQL sobre tu viejo y confiable servidor o VPS, tanto para tus propios desarrollos como para soporte de otros entornos y aplicaciones.

¡Apoya comoinstalar.me!

¿Ya funciona este servicio de bases de datos NoSQL en tu propio sistema gracias a nuestro pequeño tutorial? En ese caso, si quieres agradecérnoslo con una mínima contribución al mantenimiento de este sitio y la creación de más tutoriales y guías, puedes hacerlo dejando 1 $ como propina con PayPal:

O, si te sientes más generoso que la media, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario