Cómo instalar MongoDB en Ubuntu 18.04


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

Debido a que ofrece características de alto rendimiento y 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 LTS de 64 bits (soporte a largo plazo) versiones de Ubuntu como < strong> 14.04 LTS (trusty), 16.04 LTS (xenial), y así sucesivamente.

Paso 1: Instalando 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 memoria caché del paquete de software del sistema para tener la última versión de las listas de repositorios.

$ 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 correctamente, el servicio MongoDB se iniciará automáticamente a través de systemd y el proceso se escuchará en el puerto 27017 . Puede verificar su estado usando el comando systemctl como se muestra.

$ sudo systemctl status mongodb

Paso 2: Gestionar el servicio MongoDB

4. La instalación de MongoDB se presenta como un servicio de systemd y se puede gestionar fácilmente mediante los comandos de systemd estándar, como se muestra.

Para detener la ejecución del 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: Habilitar el acceso remoto de MongoDB en el Firewall

5. Por defecto, MongoDB se ejecuta en el puerto 27017 , para permitir el acceso desde cualquier lugar que pueda usar.

$ sudo ufw allow 27017

Pero habilitar el acceso a MongoDB desde cualquier lugar proporciona un acceso sin restricciones a los datos de la base de datos. Por lo tanto, es mejor dar acceso a la ubicación específica de la dirección IP 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. Por defecto, el puerto 27017 se escucha solo 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: Crear usuario y contraseña de la base de datos MongoDB

7. Por defecto, MongoDB viene con la autenticación del usuario desactivada, por lo tanto, se inicia sin control de acceso. Para iniciar mongo shell , ejecute el siguiente comando.

$ mongo 

8. Una vez que se haya conectado a mongo shell , 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 imponer la autenticación; exigir a los usuarios que se identifiquen cada vez que se conecten al servidor de base de datos.

MongoDB utiliza el mecanismo de autenticación Salted Challenge Response Authentication Mechanism ( SCRAM ) de forma predeterminada. Al utilizar 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 los usuarios, y crear o modificar roles de aduana.

Primero cambie a la base de datos admin , luego cree el usuario root 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 mongodb se inició sin la opción de línea de comando --auth . Debe habilitar la autenticación de los 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] , encuentre el parámetro ExecStart .

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

Cambia a lo siguiente:

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

Guarde el archivo y salga.

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

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

12. Ahora, cuando intenta 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, ya que se almacenará en el archivo histórico de la shell y un atacante podrá verla más tarde.

¡Eso es todo! MongoDB es un sistema de gestión de bases de datos No-SQL moderno, 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.