Búsqueda de sitios web

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 una persistencia de datos de alto rendimiento, alta disponibilidad y escalado automático, basado en la tecnología de última generación de NoSQL. En MongoDB, un registro es un documento, que es una estructura de datos que consta de pares de campo y valor (los documentos de MongoDB son comparables a los objetos JSON).

Debido a que proporciona alto rendimiento y excelentes funciones de 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: Debes tener en cuenta que los desarrolladores de MongoDB solo ofrecen paquetes para versiones de Ubuntu LTS de 64 bits (soporte a largo plazo) como 14.04 LTS (confiable), 16.04 LTS (xenial), etc.

Lea también: Cómo instalar MongoDB en Ubuntu 16.04/14.04 LTS

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 utilizando 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 correctamente, 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 mediante comandos estándar de systemd 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: 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 permitir 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 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 raíz y contraseña de la base de datos MongoDB

7. Por defecto, MongoDB viene con la autenticación de usuario deshabilitada, por lo que se inicia sin control de acceso. Para iniciar el mongo shell, 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 aplicar la autenticación; requiriendo que los usuarios se identifiquen cada vez que se conectan al servidor de la base de datos.

MongoDB utiliza el mecanismo de autenticación Mecanismo de autenticación de respuesta a desafío salado (SCRAM) de forma predeterminada. Usando 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 usuario administrador (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 personalizados.

Primero cambie a la base de datos admin, luego cree el usuario root usando los siguientes comandos.

> use admin 
> db.createUser({user:"root", pwd:"=@!#@%$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.

11. 8. Después de realizar cambios en el archivo de configuración, ejecute 'systemctl daemon-reload' para recargar las unidades y 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 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 del shell y un atacante podrá verla más adelante.

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

En este artículo, explicamos 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.