Cómo instalar MongoDB en Debian 8 Jessie

En esta ocasión veremos cómo instalar MongoDB en Debian 8 Jessie paso a paso, de forma que puedas usar este potente motor de bases de datos sobre tu viejo servidor o VPS Debian.

Antes de instalar MongoDB en Debian 8 Jessie

Para poder seguir los pasos de esta guía de instalación de MongoDB en Debian 8 Jessie sólo tendrás que partir de los siguientes requisitos básicos:

  • Un sistema Debian 8 Jessie actualizado.
  • Un usuario con permisos de sudo o el mismo root.
  • Acceso a Internet.

Cómo instalar el repositorio de MongoDB en Debian 8 Jessie

Vamos a instalar el repositorio oficial de MongoDB en Debian 8 Jessie ya que, aunque existen paquetes de MongoDB en los reposistorios del sistema, la última versión que ofrecen es la 2.4.10. El repositorio oficial de MongoDB nos ofrece paquetes bastante más actualizados, aunque la mala noticia es que sólo llegan hasta la versión 4.0.

El primer paso será añadir la clave pública con la que se firman los paquetes:

~$ wget https://www.mongodb.org/static/pgp/server-4.0.asc -qO- | sudo apt-key add -

Creamos el archivo de repositorio para MongoDB:

~$ sudo nano /etc/apt/sources.list.d/mongodb-org.list

Con el contenido:

deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main

Guardamos y cerramos el archivo. Ya sólo queda actualizar las listas de paquetes:

~$ sudo apt update

Cómo instalar MongoDB en Debian 8 Jessie

Una vez configurado y actualizado el repositorio, ya podemos instalar MongoDB en Debian 8 Jessie usando la nueva fuente de paquetes. Concretamente, el paquete que buscamos es mongodb-org, que instalamos con apt:

~$ sudo apt install -y mongodb-org

En unos instantes se descargarán e instalarán MongoDB y sus dependencias, habiendo creado un nuevo servicio en Debian 8, el servicio mongod, que por defecto no queda habilitado ni en ejecución.

Para que el servicio inicie automáticamente con cada arranque de la máquina, lo habilitamos:

~$ sudo systemctl enable mongod

Y si queremos empezar a trabajar de inmediato sin esperar al próximo reinicio del sistema, iniciamos esta vez el servicio de forma manual:

~$ sudo systemctl start mongod

Podemos comprobar el estado del servicio MongoDB en cualquier momento con el comando systemctl status mongod:

como instalar mongodb en debian 8 jessie

Cómo conectar a MongoDB en Debian 8

Para probar el servicio vamos a conectar a MongoDB en Debian 8 utilizando el cliente de consola mongo:

~$ mongo
MongoDB shell version v4.0.26
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("85216a00-1793-4670-b64b-45314e2bb21d") }
MongoDB server version: 4.0.26
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings:
... I STORAGE  [initandlisten]
... I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
... I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
... I CONTROL  [initandlisten]
... I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
... I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
... I CONTROL  [initandlisten]
---
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 mucha información en pantalla. Parte de esta información hace referencia a un servicio anónimo de monitorización de estadísticas de uso. Podremos activar o desactivar este servicio, pero hasta que no hagamos una de las dos acciones este aviso se mostrará en cada conexión.

Podemos desactivar el servicio con este comando:

> db.disableFreeMonitoring()

O podemos activarlo con este otro:

> db.enableFreeMonitoring()

Para cerrar la conexión y salir de nuevo a consola usamos el comando exit:

> exit

Cómo configurar MongoDB en Debian 8 Jessie

Veremos a continuación cómo configurar MongoDB en Debian 8 Jessie a través de su archivo principal de configuración, mongod.conf.

Activar autenticación por contraseña

Otro de los avisos que se muestran constantemente en cada conexión al servicio es el relacionado con que no existe autenticación de usuario al realizar la conexión, lo que podría suponer un serio riresgo de seguridad.

Antes de configurar la autenticación de usuario obligatoria, crearemos un usuario administrador con contraseña, para lo que conectamos al servicio:

~$ mongo
...
>

Conectamos a la base admin:

> use admin

Y creamos el usuario administrador con contraseña:

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

Ya podemos salir:

> exit

A partir de ahora para iniciar sesión con el nuevo usuario habrá que indicar contraseña:

~$ mongo -u chacho
MongoDB shell version v4.0.26
Enter password:
...
>

Para activar la autenticación de usuarios editamos el archivo de configuración de MongoDB:

~$ sudo nano /etc/mongod.conf

Buscamos la directiva security:

...
#security:
...

Como se puede ver, esta directiva está desactivada mediante el uso del carácter # al inicio de la línea. Activaremos la directiva eliminando el carácter # y añadimos una subdirectiva authorization:

...
security:
  authorization: enabled
...

Es muy importante tener en cuenta que para realizar el sangrado de las subdirectivas sólo se pueden usar espacios en blanco, nunca tabulaciones.

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

~$ sudo systemctl restart mongod

Acceso remoto

Por defecto MongoDB está configurado para permitir solamente conexiones locales, así que en el caso de que necesites realizar conexiones remotas te puede interesar activar el acceso remoto.

Editamos el arhivo mongod.conf:

~$ sudo nano /etc/mongod.conf

Buscamos la directiva bindIp:

...
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1
...

Y cambiamos su valor por el de la dirección IP del adaptador de red local, o por 0.0.0.0 si queremos dar acceso remoto en general:

...
  bindIp: 0.0.0.0
...

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

~$ sudo systemctl restart mongod

Configurar el firewall UFW para MongoDB en Debian 8

Si has activado el firewall UFW, necesitarás una regla específica para MongoDB:

~$ sudo ufw allow 27017/tcp

La aplicación de este ajuste es inmediata.

Cómo conectar remotamente a MongoDB en Debian 8

Desde otro sistema con un cliente como por ejemplo mongo, podemos realizar la conexión remota, indicando en la línea de comandos la direccion IP o dominio de la máquina Debian 8, la base de datos a la que queremos conectar y el usuario con el que conectamos.

En este ejemplo conectamos desde una máquina con otra versión de Debian y MongoDB, desde consola, indicando el nombre de red del servidor Debian 8 (debian8.local.lan), la base a la que queremos conectar (admin) y el usuario con el que queremos conectar (chacho):

~$ mongo debian8.local.lan/admin -u chacho

instalar y configurar mongodb en debian 8 jessie

Como este usuario tiene contraseña se nos solicita, y tras introducirla podemos empezar a trabajar.

Conclusión

Ahora que sabes cómo instalar MongoDB en Debian 8 Jessie ya puedes usar este motor de bases de datos tan popular en desarrollo web sobre tu viejo servidor o VPS Debian, usando una versión del servicio bastante más moderna de lo que cabría pensar.

En caso de dudas, preguntas, alguna sugerencia de mejora, notificación de errores o cuestión similar, un comentario es la mejor opción.

Y si ya puedes trabajar con este motor de bases de datos en tu sistema gracias a nuestra pequeña guía de instalación y quieres agradecérmelo, pudes hacerlo dejando 1 $ de propina con PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

5/5 - (1 voto)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.