Cómo instalar MongoDB en Debian 9 Stretch

En este artículo vamos a ver cómo instalar MongoDB en Debian 9 Stretch paso a paso, de modo que puedas usar este motor de bases de datos tipo NoSQL en tus desarrollos o como base para otras aplicaciones sobre tu servidor o VPS Debian.

Antes de instalar MongoDB en Debian 9 Stretch

Para completar esta guía de instalación de MongoDB en Debian 9 Stretch debes cumplir unos mínimos requisitos:

  • Una máquina Debian 9 Stretch actualizada.
  • Acceso a consola como root o un usuario con permisos de sudo.
  • Conexión a Internet.

En este tutorial trabajaremos con algunas herramientas del sistema que podemos descargar desde los repositorios de Debian 9 Stretch, por lo que actualizaremos las listas de paquetes:

~$ sudo apt update

E instalamos dichas herramientas:

~$ sudo apt install -y ca-certificates gnupg wget

Cómo instalar MongoDB en Debian 9 Stretch

Para instalar MongoDB en Debian 9 Stretch añadiremos el repositorio oficial de mongodb.org, ya que mientras la última versión estable es la rama 5.0, los paquetes disponibles en el repositorio de la distribución sólo llegan hasta la versión 3.2.11. Por tanto merece la pena incorporar el repositorio de MongoDB.

El primer paso será incorporar la clave pública del certificado con el que están firmados los paquetes del repositorio oficial:

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

Ahora creamos una fuente de MongoDB para apt:

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

La única línea que tendrá este archivo es la siguiente:

deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/5.0 main

Guardamos los cambios y cerramos el archivo. Es hora de actualizar las listas de paquetes y comprobar que todo está correcto:

~$ sudo apt update

El paquete que necesitamos es mongodb-org, así que vamos a instalarlo con el comando apt:

~$ sudo apt install -y mongodb-org

Tras descargar e instalar el paquete mongodb-org y todas sus dependencias, se crea un nuevo servicio en nuestro sistema Debian 9, llamado mongod.service, o mongod si prefieres usar la versión corta.

Este nuevo servicio no queda en ejecución tras la instalación ni tampoco queda activado, por lo que son tareas que debemos hacer manualmente. En primer lugar habilitaremos el servicio mongod para que arranque junto a Debian 9:

~$ sudo systemctl enable mongod

Y ahora arrancamos manualmente el servicio para no tener que esperar al próximo inicio del sistema:

~$ sudo systemctl start mongod

Comprobaremos el estado del servicio mongod usando el comando systemctl status mongod:

como instalar mongodb en debian 9 stretch

Queda claro que el servidor MongoDB ya está listo para aceptar conexiones. De hecho, podemos probarlo con el cliente mongosh, pasando un script mínimo en la misma línea de comandos:

~$ mongosh --eval 'db.runCommand({connectionStatus: 1})'

Que provocará la siguiente salida:

~$ mongosh --eval 'db.runCommand({connectionStatus: 1})'
Current Mongosh Log ID: 62548aa12030f602a59d2336
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1
Using MongoDB:          5.0.7
Using Mongosh:          1.3.1

...

{
  authInfo: { authenticatedUsers: [], authenticatedUserRoles: [] },
  ok: 1
}

También podremos utilizar el shell mongosh de forma interactiva:

~$ mongosh
Current Mongosh Log ID: 62548b1dd7c0f5f4917d6b0c
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.3.1
Using MongoDB:          5.0.7
Using Mongosh:          1.3.1

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

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

test>

MongoDB activa por defecto un servicio de telemetría que recopila datos anónimos para la mejora del producto. Si no queremos enviar datos sobre el funcionamiento de nuestra instacia de MongoDB en Debian 9 podemos desactivar esta función con el comando disableTelemetry():

> disableTelemetry()

Salimos del cliente con el comando exit:

> exit

Cómo configurar MongoDB en Debian 9 Stretch

Para configurar MongoDB en Debian 9 Stretch trabajaremos sobre su archivo principal de configuración, que es /etc/mongod.conf.

En este archivo de configuración no sólo podremos realizar ajustes, sino que podremos averiguar los valores actuales de configuración.

Por ejemplo, el registro de eventos de MongoDB se encuentra en /var/log/mongodb/mongod.log.

MongoDB sólo escucha conexiones locales, a través de la interfaz local con dirección IP 127.0.0.1. Puedes modificar esto cambiando el valor de la directiva bindIp en mongod.conf.

El puerto de escucha es el 27017 (directiva port).

Cualquier cambio que realices sobre el archivo de configuración de MongoDB no hará efecto hasta que reinicies el servicio (no se puede simplemente recargar la configuración del servicio):

~$ sudo systemctl restart mongod

Cómo crear un usuario administrador y activar el control de acceso

Vamos a crear un usuario con rol de administrador con el que manejaremos el resto de usuarios y bases de datos. Conectamos al servicio, si no lo hemos hecho ya:

~$ mongosh

Activamos la base de datos principal, admin:

> use admin

Y creamos el nuevo usuario, especificando su contraseña y el rol de administrador:

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

Cerramos la conexión:

> exit

Ahora activaremos la autenticación mediante contraseña editando el archivo de configuración de MongoDB:

~$ sudo nano /etc/mongod.conf

Buscamos la directiva security y la habilitamos añadiendo el acceso mediante clave:

...
security:
  authorization: enabled
...

Lo que hay antes de la directiva authorization son espacios en blanco. En este archivo de configuración la indentación es obligatoria y no se pueden usar tabuladores.

Guardamos los cambios y reiniciamos el servicio.

Ahora para acceder al servicio es necesario especificar el usuario y el uso de contraseña (al estilo de MySQL):

~$ mongosh -u chacho
Enter password: ********
...
------
>

Conclusión

Ahora que sabes cómo instalar y configurar MongoDB Server en Debian 9 Stretch, puedes montar el backend necesario en el que se apoyan muchas de las pilas de desarrollo más populares.

Si tienes alguna duda, pregunta, sugerencia o notificación, puedes dejar un comentario.

Ah, y si te ha sido de utilidad esta breve guía de instalación de MongoDB en Debian 9, y quieres agradecérmelo, puedes hacerlo dejando 1 $ de propina en PayPal:

¡Gracias!

5/5 - (3 votos)

1 comentario en «Cómo instalar MongoDB en Debian 9 Stretch»

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.