El autor seleccionó a Creative Commons Corporation para que recibiese una donación de $100 como parte del programa Write for DOnations.
MongoDB es una base de datos de documentos gratuita y de código abierto utilizada comúnmente en las aplicaciones web modernas.
En este tutorial, instalará MongoDB, administrará su servicio y, de forma opcional, habilitará el acceso remoto.
Para completar este tutorial, necesitará lo siguiente:
En los repositorios oficiales de paquetes de Ubuntu se incluye una versión actualizada de MongoDB. Esto significa que podemos instalar los paquetes necesarios utilizando apt
.
Primero, actualice la lista de paquetes para tener la versión más reciente de listados de repositorios:
- sudo apt update
A continuación, instale el propio paquete de MongoDB:
- sudo apt install -y mongodb
Con este comando. se instalan varios paquetes que contienen la versión estable más reciente de MongoDB, junto con herramientas de administración útiles para el servidor de MongoDB. El servidor de la base de datos se inicia de forma automática tras la instalación.
A continuación, comprobaremos que el servidor esté activo y funcione de forma correcta.
El proceso de instalación inició MongoDB de forma automática, pero verificaremos que el servicio se inicie y que la base de datos funcione.
Primero, compruebe el estado del servicio:
- sudo systemctl status mongodb
Verá este resultado:
Output● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
Docs: man:mongod(1)
Main PID: 2312 (mongod)
Tasks: 23 (limit: 1153)
CGroup: /system.slice/mongodb.service
└─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Según systemd
, el servidor MongoDB se encuentra activo y funcionando.
Podemos verificar esto en profundidad estableciendo conexión con el servidor de la base de datos y ejecutando un comando de diagnóstico.
Ejecute este comando:
- mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Con esto se mostrarán la versión actual de la base de datos, la dirección y el puerto del servidor, y el resultado del comando status:
OutputMongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Un valor de 1
para el campo ok
en la respuesta indica que el servidor funciona correctamente.
A continuación, veremos la forma de administrar la instancia del servidor.
MongoDB se instala como un servicio systemd
. Esto significa que puede administrarlo utilizando comandos systemd estándares, junto con todos los demás servicios de sistema en Ubuntu.
Para verificar el estado del servicio, escriba lo siguiente:
- sudo systemctl status mongodb
Puede detener el servidor en cualquier momento escribiendo lo siguiente:
- sudo systemctl stop mongodb
Para iniciar el servidor cuando esté detenido, escriba lo siguiente:
- sudo systemctl start mongodb
También puede reiniciar el servidor con un solo comando:
- sudo systemctl restart mongodb
Por defecto, MongoDB se configura para iniciarse de forma automática con el servidor. Si desea desactivar el inicio automático, escriba lo siguiente:
- sudo systemctl disable mongodb
Volver a habilitarlo es igualmente sencillo. Para hacerlo, utilice lo siguiente:
- sudo systemctl enable mongodb
A continuación, ajustaremos la configuración del firewall para nuestra instalación MongoDB.
Suponiendo que siguió las instrucciones del tutorial de configuración inicial para servidores para habilitar el firewall en su servidor, no será posible acceder al servidor de MongoDB desde Internet.
Si tiene intención de usar el servidor de MongoDB solo a nivel local con aplicaciones que se ejecuten en el mismo servidor, este es el ajuste recomendado y seguro. Sin embargo, si desea poder conectarse con su servidor MongoDB desde Internet, deberá permitir las conexiones entrantes en ufw
.
Para permitir el acceso a MongoDB en su puerto predeterminado 27017
desde cualquier parte, podría utilizar sudo ufw allow 27017
. Sin embargo, permitir el acceso a Internet al servidor de MongoDB en una instalación predeterminada proporciona acceso ilimitado al servidor de la base de datos y a sus datos.
En la mayoría de los casos, solo se debe acceder a MongoDB desde determinadas ubicaciones de confianza, como otro servidor que aloje una aplicación. Para realizar esta tarea, puede permitir el acceso en el puerto predeterminado de MongoDB mientras especifique la dirección IP de otro servidor que, de forma explícita, tendrá permitido conectarse:
- sudo ufw allow from your_other_server_ip/32 to any port 27017
Puede verificar el cambio en los ajustes del firewall con ufw
:
- sudo ufw status
Debería ver la habilitación del tráfico hacia el puerto 27017
en el resultado:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
Si decidió permitir que solo una dirección IP determinada se conecte con el servidor de MongoDB, en el resultado se enumerará la dirección IP de la ubicación autorizada en lugar de Anywhere.
Puede encontrar ajustes de firewall más avanzados para restringir el acceso a servicios en Aspectos básicos de UFW: Reglas y comandos comunes de firewall.
Aunque el puerto esté abierto, MongoDB solo escucha en la dirección local 127.0.0.1
. Para permitir conexiones remotas, agregue la dirección IP pública de su servidor al archivo mongod.conf
.
Abra el archivo de configuración de MongoDB en su editor:
- sudo nano /etc/mongodb.conf
Agregue la dirección IP de su servidor al valor bindIP
:
[label ]
...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
Asegúrese de situar una coma entre la dirección IP existente y la que agregó.
Guarde el archivo, cierre el editor y reinicie MongoDB:
- sudo systemctl restart mongodb
MongoDB ahora recibirá conexiones remotas, pero cualquiera podrá acceder a él. Siga la parte 2 de Cómo instalar y proteger MongoDB en Ubuntu 16.04 para agregar un usuario administrativo y ampliar el bloqueo.
Puede encontrar tutoriales más detallados sobre cómo configurar y utilizar MongoDB en estos artículos de la comunidad de DigitalOcean. La documentación oficial de MongoDB también es un gran recurso en el que se abordan las posibilidades que ofrece MongoDB.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!