¿Cómo instalar el sistema de base de datos MongoDB en Ubuntu?

MongoDB

En este blog se ha hablado sobre algunos sistemas de bases de datos, entre los cuales los más populares son MariaDB y MySQL, pues son los sistemas que suelen incluir en Xampp o Lampp. En esta ocasión vamos a hablar sobre otro sistema el cual es MongoDB.

MongoDB es un sistema de base de datos NoSQL orientado a documentos de código abierto, este es un moderno sistema de gestión de base de datos documental diseñado para la persistencia de datos de alto rendimiento, alta disponibilidad, así como la escala automática, basada en la tecnología de la técnica de NoSQL .

En lugar de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB , guarda estructuras de datos en un documento, que es una estructura de datos que comprende de pares de campo y el valor (documentos MongoDB son comparables a objetos JSON).

Debido a que proporciona un alto rendimiento y excelentes características de escalabilidad, que está siendo utilizado para construir aplicaciones modernas que requieren potentes bases de datos de misión crítica y de alta disponibilidad.

Instalación de MongoDB en Ubuntu

Para instalar este sistema de base de datos en nuestro sistema, solamente debemos de abrir una terminal y ejecutar en ella el siguiente comando:

sudo apt install mongodb

Hecha la instalacion, el servicio MongoDB comenzará automáticamente a través de systemd y el proceso se ejecutará en el puerto 27017. Puede comprobar su estado usando el comando:

sudo systemctl status mongodb

En caso de que no sea asi, podemos forzar el inicio con este comando:

sudo systemctl start mongodb

Habilitando conexiones remotas a MongoDB

MongoDB 1

El sistema de base de datos de MongoDB por defecto utiliza el puerto 27017 el cual debemos de abrir para poder aceptar conexiones remotas, para ello solamente lo habilitamos con el siguiente comando.

sudo ufw allow 27017

Por defecto el puerto 27017 solamente puede ser accesador desde la dirección local 127.0.0.1. Para permitir conexiones remotas a MongoDB, es necesario agregar la dirección IP del servidor en el fichero /etc/mongodb.conf

Basta con editarlo con:

sudo nano

Y podremos ver algo similar a esto:

bind_ip = 127.0.0.1, your_server_ip

#port = 27,017

El cual editamos con los datos de nuestro servidor.

Permitiendo el acceso a MongoDB de todas partes, da acceso sin restricciones a los datos de la base de datos. Por lo tanto, es mejor dar acceso a la ubicación específica dirección IP por defecto del puerto de MongoDB.

sudo ufw allow from your_server_IP/32 to any port 27017

sudo ufw status

Hecho esto basta con reiniciar el servicio para que los cambios nuevos sean cargados al inicio, esto lo hacemos con:

sudo systemctl restart mongodb

Crear un usuario en MongoDB con contraseña

Por defecto la base de datos cuenta con un acceso bastante simple, por lo que para reforzar esto podemos crear un usuario con una contraseña.

MongoDB utiliza el mecanismo de autenticación SCRAM de forma predeterminada. El uso de SCRAM en el sistema verifica las credenciales de usuario suministrados contra el usuario de nombre, contraseña y base de datos de autenticación.

Bastan con iniciar la consola de la base de datos con el siguiente comando:

Mongo

Podemos realizar un listado de las bases de datos existentes con:

show dbs

Podemos crear un usuario que nos permitira administrar usuarios y funciones tales como crear usuarios, conceder o revocar las funciones de los usuarios, y crear o modificar las funciones de aduanas.

Basta con teclear

use admin

Y creamos el usuario con el siguiente comando, donde remplazamos el nombre del usuario “root” y la contrasela “password”, por las crecenciales de acceso que creamos convenientes.

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

Hecho esto debemos de habilitar el método de autentificación para ello vamo a editar el siguiente archivo:

sudo nano /lib/systemd/system/mongodb.service

Y vamos a buscar la siguiente línea:

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Y la editamos para que quede de la siguiente forma:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Ahora simplemente reiniciamos en la base de datos

systemctl daemon-reload

sudo systemctl restart mongodb

sudo systemctl status mongodb              

Y probamos el método de autentificación con:

mongo -u "usuario" -p --authenticationDatabase "contraseña"

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

      Dectectable dijo

    Ayudame con este ERROR.

    2021-03-24T21:33:16.233+0000 E QUERY [thread1] Error: listDatabases failed:{
    «ok» : 0,
    «errmsg» : «not authorized on admin to execute command { listDatabases: 1.0, $db: \»admin\» }»,
    «code» : 13,
    «codeName» : «Unauthorized»
    } :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
    shellHelper.show@src/mongo/shell/utils.js:816:19
    shellHelper@src/mongo/shell/utils.js:706:15
    @(shellhelp2):1:1