Manager, Developer Education
Melissa Anderson escribió una versión anterior de este tutorial.
MongoDB, también conocido como Mongo, es una base de datos de documentos de código abierto que se utiliza en muchas aplicaciones web modernas. Se clasifica como base de datos NoSQL porque no sigue la estructura de las bases de datos relacionales tradicionales basadas en tablas.
En vez de eso, utiliza documentos similares a JSON con esquemas dinámicos, lo que significa que, a diferencia de las bases de datos relacionales, MongoDB no requiere un esquema predefinido antes de añadir datos a una base de datos. Puede alterar el esquema en cualquier momento y tan a menudo como sea necesario sin tener que configurar una nueva base de datos con un esquema actualizado.
En este tutorial, instalará MongoDB en un servidor Ubuntu 20.04 lo probará y aprenderá cómo administrarlo como un servicio systemd
.
Para seguir este tutorial, necesitará lo siguiente:
Los repositorios oficiales del paquete de Ubuntu incluyen una versión estable de MongoDB. Sin embargo, en el momento de escribir este artículo, la versión de MongoDB disponible desde los repositorios predeterminados de Ubuntu es 3.6, mientras que la última versión estable es 4.4.
Para obtener la versión más reciente de este software, debe incluir el repositorio de paquetes dedicado de MongoDB a sus fuentes APT. A continuación, podrá instalar mongodb-org
, un metapaquete que siempre apunta a la última versión de MongoDB.
Para comenzar, importe la clave pública GPG para la última versión estable de MongoDB. Puede encontrar el archivo de claves apropiado navegando al servidor de claves de MongoDB y buscando el archivo que incluye el número de la versión estable más reciente y termina en .asc
. Por ejemplo, si desea instalar la versión 4.4 de MongoDB, buscará el archivo llamado server-4.4.asc.
Haga clic con el botón derecho sobre el archivo, y seleccione Copiar dirección del enlace. Luego pegue ese enlace en el siguiente comando curl
, sustituyendo la URL resaltada:
- curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
cURL es una herramienta de línea de comandos disponible en muchos sistemas operativos utilizada para transferir datos. Lee cualquier dato almacenado en la URL transmitida e imprime el contenido al resultado del sistema. En el siguiente ejemplo, cURL imprime el contenido del archivo de claves GPG y, luego, lo canaliza al siguiente comando sudo apt-key add -
, añadiendo así la clave GPG a su lista de claves de confianza.
Además, tenga en cuenta que este comando curl
utiliza las opciones -fsSL
que, juntas, esencialmente indica a cURL que falle silenciosamente. Esto significa que si por cualquier motivo cURL no puede contactar con el servidor GPG, o el servidor GPG no está disponible, no añadirá accidentalmente el código del error resultante a su lista de claves de confianza.
Este comando devolverá OK
si la clave se añadió correctamente:
OutputOK
Si desea comprobar que la clave se añadió correctamente, puede hacerlo con el siguiente comando:
- apt-key list
Esto devolverá la clave de MongoDB en algún lugar de la salida:
Output/etc/apt/trusted.gpg
--------------------
pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26]
2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com>
. . .
En este momento, su instalación APT aún no sabe dónde encontrar el paquete mongodb-org
que necesita para instalar la última versión de MongoDB.
Hay dos lugares en su servidor donde APT busca fuentes en línea de paquetes para descargar e instalar: el archivo sources.list
y el directorio sources.list.d
. sources.list
es un archivo que lista fuentes activas de datos APT, con una fuente por línea y las fuentes más preferidas listadas primero. El directorio sources.list.d
le permite añadir dichas entradas sources.list
como archivos independientes.
Ejecute el siguiente comando, que crea un archivo en el directorio sources.list.d
llamado mongodb-org-4.4.list
. El único contenido en este archivo es una única línea que lee deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
:
- echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Esta única línea indica a APT todo lo que necesita saber sobre cuál es la fuente y dónde encontrarla:
deb
: Esto significa que la entrada de la fuente hace referencia a una arquitectura Debian regular. En otros casos, esta parte de la línea puede leer deb-src
, lo que significa que la entrada de origen representa un código fuente de la distribución de Debian.[ arch=amd64,arm64 ]
: esto especifica a qué arquitecturas deberían descargarse los datos APT. En este caso, especifica las arquitecturas amd64
y arm64
.https://repo.mongodb.org/apt/ubuntu
: Esta es una URI que representa la ubicación en la que pueden encontrarse los datos APT. En este caso, la URI apunta a la dirección HTTPS donde se ubica el repositorio oficial de MongoDB.focal/mongodb-org/4.4
: Los repositorios de Ubuntu pueden contener varias versiones diferentes. Esto especifica que solo quiere la versión 4.4
del paquete mongodb-org
disponible para la versión focal
de Ubuntu (“Focal Fossa”, que es el nombre en código de Ubuntu 20.04).multiverse
: Esta parte apunta APT a uno de los cuatro repositorios principales de Ubuntu. En este caso, apunta al repositorio multiverse
.Tras ejecutar este comando, actualice el índice del paquete local de su servidor para que APT sepa dónde encontrar el paquete mongodb-org
:
- sudo apt update
Tras eso, puede instalar MongoDB:
- sudo apt install mongodb-org
Cuando se le solicite, pulse Y
y luego ENTER
para confirmar que desea instalar el paquete.
Cuando el comando termine, MongoDB se instalará en su sistema. Sin embargo, aún no está listo para usarlo. A continuación, iniciará MongoDB y confirmará que funciona correctamente.
El proceso de instalación descrito en el paso anterior configura automáticamente MongoDB para que se ejecute como un daemon controlado por systemd
, lo que significa que puede administrar MongoDB usando los diferentes comandos de systemctl
. Sin embargo, este procedimiento de instalación no inicia automáticamente el servicio.
Ejecute el siguiente comando systemctl
para iniciar el servicio MongoDB:
- sudo systemctl start mongod.service
A continuación, compruebe el estado del servicio. Tenga en cuenta que este comando no incluye .service
en la definición del archivo del servicio. systemctl
añadirá este sufijo a cualquier argumento que pase automáticamente si no está ya presente, por lo que no es necesario incluirlo:
- sudo systemctl status mongod
Este comando devolverá un resultado como el siguiente, lo que indica que el servicio está en funcionamiento:
Output● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago
Docs: https://docs.mongodb.org/manual
Main PID: 37128 (mongod)
Memory: 64.8M
CGroup: /system.slice/mongod.service
└─37128 /usr/bin/mongod --config /etc/mongod.conf
Tras confirmar que el servicio se está ejecutando como se espera, habilite el servicio MongoDB para que se inicie en el arranque:
- sudo systemctl enable mongod
Puede verificar que la base de datos está operativa conectando con el servidor de la base de datos y ejecutando un comando de diagnóstico. El siguiente comando conectará con la base de datos y dará como resultado su versión actual, la dirección del servidor y el puerto. También devolverá el resultado del comando interno connectionStatus
de MongoDB:
- mongo --eval 'db.runCommand({ connectionStatus: 1 })'
connectionStatus
verificará y devolverá el estado de la conexión con la base de datos. Un valor de 1
para el campo ok
en la respuesta indica que el servidor funciona como se espera:
OutputMongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") }
MongoDB server version: 4.4.0
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
Además, tenga en cuenta que la base de datos se ejecuta en el puerto 27017
en 127.0.0.1
, la dirección local loopback que representa a localhost. Este es el número de puerto predeterminado de MongoDB.
A continuación, veremos cómo administrar la instancia del servidor MongoDB con systemd
.
Como se ha mencionado previamente, el proceso de instalación descrito en el Paso 1 configura MongoDB para que se ejecute como un servicio systemd
. Esto significa que puede administrarlo usando los comandos systemctl
estándar como haría con otros servicios del sistema Ubuntu.
Como se ha mencionado previamente, el comando systemctl status
comprueba el estado del servicio MongoDB:
- sudo systemctl status mongod
Puede detener el servicio en cualquier momento escribiendo:
- sudo systemctl stop mongod
Para iniciar el servicio cuando esté detenido, ejecute:
- sudo systemctl start mongod
También puede reiniciar el servidor cuando esté ejecutándose:
- sudo systemctl restart mongod
En el Paso 2, ha habilitado MongoDB para que se inicie automáticamente con el servidor. Si desea desactivar el inicio automático en algún momento, escriba lo siguiente:
- sudo systemctl disable mongod
A continuación, para volver a habilitarlo en el inicio, ejecute de nuevo el comando enable
:
- sudo systemctl enable mongod
Para obtener más información sobre cómo administrar los servicios systemd
, consulte Puntos esenciales de Systemd: Trabajar con servicios, unidades y el diario.
En este tutorial, añadió el repositorio oficial de MongoDB a su instancia APT, e instaló la versión más reciente de MongoDB. A continuación probó la funcionalidad de Mongo y practicó algunos comandos systemctl
.
Como paso siguiente inmediato, recomendamos encarecidamente que endurezca la seguridad de su instalación de MongoDB siguiendo nuestra guía sobre Cómo proteger MongoDB en Ubuntu 20.04. Una vez protegido, podría configurar MongoDB para que acepte conexiones remotas.
Puede encontrar tutoriales más detallados sobre cómo configurar y utilizar MongoDB en estos artículos de la comunidad de DigitalOcean. También le animamos a consultar la documentación oficial de MongoDB, ya que es un recurso excelente sobre las posibilidades que MongoDB ofrece.
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!