Cómo instalar MongoDB en Ubuntu 18.04


MongoDB es un moderno sistema de gestión de bases de datos de documentos de código abierto diseñado para la persistencia de datos de alto rendimiento, alta disponibilidad y escalado automático, basado en la tecnología de vanguardia de NoSQL. En MongoDB, un registro es un documento, que es una estructura de datos que se compone de pares de campo y valor (los documentos MongoDB son comparables a los objetos JSON).

Debido a que proporciona un alto rendimiento y características de gran escalabilidad, se utiliza para crear aplicaciones modernas que requieren bases de datos potentes, de misión crítica y de alta disponibilidad.

En este artículo, explicaremos cómo instalar MongoDB, administrar su servicio y configurar la autenticación básica en Ubuntu 18.04.

Importante: debe tener en cuenta que los desarrolladores de MongoDB solo ofrecen paquetes para versiones de Ubuntu LTS (soporte a largo plazo) de 64 bits, como 14.04 LTS (confiable), 16.04 LTS (xenial), etc.

Paso 1: Instalar MongoDB en Ubuntu 18.04

1. Los repositorios de paquetes de software oficiales de Ubuntu vienen con la última versión de MongoDB y se pueden instalar fácilmente usando el administrador de paquetes APT.

Primero actualice la caché del paquete de software del sistema para tener la versión más reciente de los listados del repositorio.

$ sudo apt update

2. A continuación, instale el paquete MongoDB que incluye varios otros paquetes como mongo-tools, mongodb-clients, mongodb-server y mongodb-server-core.

$ sudo apt install mongodb

3. Una vez que lo haya instalado con éxito, el servicio MongoDB se iniciará automáticamente a través de systemd y el proceso escuchará en el puerto 27017. Puede verificar su estado usando el comando systemctl como se muestra.

$ sudo systemctl status mongodb

Paso 2: administrar el servicio MongoDB

4. La instalación de MongoDB viene como un servicio systemd y se puede administrar fácilmente a través de los comandos systemd estándar, como se muestra.

Para dejar de ejecutar el servicio MongoDB, ejecute el siguiente comando.

$ sudo systemctl stop mongodb	

Para iniciar un servicio MongoDB, escriba el siguiente comando.

$ sudo systemctl start mongodb

Para reiniciar un servicio MongoDB, escriba el siguiente comando.

$ sudo systemctl restart mongodb	

Para deshabilitar el servicio MongoDB iniciado automáticamente, escriba el siguiente comando.

$ sudo systemctl disable mongodb	

Para habilitar nuevamente el servicio MongoDB, escriba el siguiente comando.

$ sudo systemctl enable mongodb	

Paso 3: Habilite el acceso remoto a MongoDB en el firewall

5. De forma predeterminada, MongoDB se ejecuta en el puerto 27017 para permitir el acceso desde cualquier lugar que pueda utilizar.

$ sudo ufw allow 27017

Pero habilitar el acceso a MongoDB desde cualquier lugar brinda acceso sin restricciones a los datos de la base de datos. Por lo tanto, es mejor dar acceso a la ubicación de la dirección IP específica al puerto predeterminado de MongoDB usando el siguiente comando.

$ sudo ufw allow from your_server_IP/32 to any port 27017 
$ sudo ufw status

6. De forma predeterminada, el puerto 27017 solo escucha en la dirección local 127.0.0.1. Para permitir conexiones remotas de MongoDB, debe agregar la dirección IP de su servidor al archivo de configuración /etc/mongodb.conf como se muestra.

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

Guarde el archivo, salga del editor y reinicie MongoDB.

$ sudo systemctl restart mongodb

Paso 4: Cree el usuario raíz y la contraseña de la base de datos MongoDB

7. De forma predeterminada, MongoDB viene con la autenticación de usuario desactivada, por lo que se inicia sin control de acceso. Para iniciar el shell mongo, ejecute el siguiente comando.

$ mongo 

8. Una vez que se haya conectado al shell mongo, puede enumerar todas las bases de datos disponibles con el siguiente comando.

> show dbs

9. Para habilitar el control de acceso en su implementación de MongoDB para hacer cumplir la autenticación; exigir que los usuarios se identifiquen cada vez que se conectan al servidor de la base de datos.

MongoDB utiliza el mecanismo de autenticación del Mecanismo de autenticación de respuesta de desafío salado (SCRAM) de forma predeterminada. Mediante SCRAM, MongoDB verifica las credenciales de usuario proporcionadas con el nombre del usuario, la contraseña y la base de datos de autenticación (la base de datos en la que se creó el usuario y, junto con el nombre del usuario, sirve para identificar al usuario).

Debe crear un administrador de usuarios (análogo al usuario root en MySQL/MariaDB) en la base de datos de administración. Este usuario puede administrar usuarios y roles, como crear usuarios, otorgar o revocar roles de usuarios y crear o modificar roles de aduana.

Primero cambie a la base de datos de administración, luego cree el usuario raíz usando los siguientes comandos.

> use admin 
> db.createUser({user:"root", pwd:"[email protected]!#@%$admin1", roles:[{role:"root", db:"admin"}]})

Ahora salga del shell mongo para habilitar la autenticación como se explica a continuación.

10. La instancia de mongodb se inició sin la opción de línea de comando --auth . Debe habilitar la autenticación de usuarios editando el archivo /lib/systemd/system/mongod.service, primero abra el archivo para editarlo así.

$ sudo vim /lib/systemd/system/mongodb.service 

En la sección de configuración [Service] , busque el parámetro ExecStart.

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

Cámbielo a lo siguiente:

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

Guarde el archivo y salga de él.

11. 8. Después de realizar cambios en el archivo de configuración, ejecute "systemctl daemon-reload" para recargar las unidades, reinicie el servicio MongoDB y verifique su estado de la siguiente manera.

$ systemctl daemon-reload
$ sudo systemctl restart mongodb	
$ sudo systemctl status mongodb	

12. Ahora, cuando intente conectarse a mongodb, debe autenticarse como usuario de MongoDB. Por ejemplo:

$ mongo -u "root" -p --authenticationDatabase "admin"

Nota: No se recomienda ingresar su contraseña en la línea de comandos porque se almacenará en el archivo de historial de shell y un atacante podrá verla más adelante.

¡Eso es todo! MongoDB es un moderno sistema de administración de bases de datos sin SQL de código abierto que proporciona alto rendimiento, alta disponibilidad y escalado automático.

En este artículo, hemos explicado cómo instalar y comenzar con MongoDB en Ubuntu 18.04. Si tiene alguna consulta, utilice el formulario de comentarios a continuación para comunicarse con nosotros.