MongoDB es una base de datos de documentos gratuita y de código abierto. Pertenece a una familia de bases de datos denominada NoSQL, que es diferente de las bases de datos SQL tradicionales basadas en tablas, como MySQL y PostgreSQL.
En MongoDB, los datos se almacenan en documentos flexibles similares a JSON donde los campos pueden variar de un documento a otro. No requiere un esquema predefinido y la estructura de datos se puede cambiar con el tiempo.
En este tutorial, le mostraremos cómo instalar y configurar la última versión de MongoDB Community Edition en un sistema Debian 9 desde los repositorios oficiales de MongoDB.
Requisitos previos #
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Instalando MongoDB #
Al momento de escribir este artículo, la última versión de MongoDB es la versión 4.0.
Antes de continuar con el proceso de instalación, diríjase a la sección Instalar en Debian de la documentación de MongoDB y verifique si hay una nueva versión disponible.
Los siguientes pasos describen cómo instalar MongoDB en un sistema Debian:
-
Primero, instale los paquetes necesarios para agregar un nuevo repositorio:
sudo apt install software-properties-common dirmngr
-
Agregue la clave GPG de MongoDB a su sistema usando el siguiente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
-
Una vez importada la clave, para agregar el repositorio de MongoDB, ejecute:
sudo add-apt-repository 'deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main'
Si desea instalar una versión anterior de MongoDB, reemplace
4.0
con su versión preferida. -
Actualice la lista de paquetes:
sudo apt update
-
Instale
mongodb-org
metapaquete con:sudo apt install mongodb-org
Los siguientes paquetes se instalarán en su sistema como parte de
mongodb-org
paquete:mongodb-org-server
- Elmongod
daemon y scripts y configuraciones de inicio correspondientes.mongodb-org-mongos
- Losmongos
demonio.mongodb-org-shell
- El shell mongo es una interfaz JavaScript interactiva para MongoDB. Se utiliza para realizar tareas administrativas a través de la línea de comandos.mongodb-org-tools
- Contiene varias herramientas de MongoDB para importar y exportar datos, estadísticas y otras utilidades.
-
Inicie el demonio MongoDB y habilítelo para que se inicie en el arranque escribiendo:
sudo systemctl start mongod
sudo systemctl enable mongod
-
Para verificar si la instalación se ha completado con éxito nos conectaremos al servidor de base de datos MongoDB usando el
mongo
herramienta e imprimir el estado de la conexión:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
La salida se verá así:
MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.2 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Un valor de
1
para elok
el campo indica éxito.
Configurando MongoDB #
MongoDB usa un archivo de configuración con formato YAML, /etc/mongod.conf
. Puede configurar su instancia de MongoDB editando este archivo.
Los ajustes de configuración predeterminados son suficientes para la mayoría de los usuarios. Sin embargo, para entornos de producción, se recomienda descomentar la sección de seguridad y habilitar la autorización como se muestra a continuación:
/etc/mongod.confsecurity:
authorization: enabled
La authorization
La opción habilita el control de acceso basado en roles (RBAC) que regula el acceso de los usuarios a los recursos y las operaciones de la base de datos. Si esta opción está deshabilitada, cada usuario tendrá acceso a todas las bases de datos y podrá realizar cualquier acción.
Después de realizar cambios en el archivo de configuración de MongoDB, reinicie el servicio mongod con:
sudo systemctl restart mongod
Para encontrar más información sobre las opciones de configuración disponibles en MongoDB 4.0, visite la página de documentación Opciones del archivo de configuración.
Creación del número de usuario administrativo de MongoDB
Si habilitó la autenticación de MongoDB, cree un usuario administrativo de MongoDB que se usará para acceder y administrar la instancia de MongoDB.
Primero acceda al shell mongo con:
mongo
Una vez que esté dentro del shell de MongoDB, escriba el siguiente comando para conectarse al admin
base de datos:
use admin
switched to db admin
Ejecute el siguiente comando para crear un nuevo usuario llamado mongoAdmin
con el userAdminAnyDatabase
rol:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Puede nombrar al usuario administrativo de MongoDB como desee. Salga del shell mongo con:
quit()
Para probar los cambios, acceda al shell de mongo usando el usuario administrativo que ha creado previamente:
mongo -u mongoAdmin -p --authenticationDatabase admin
Introduzca la contraseña cuando se le solicite. Una vez que esté dentro del shell de MongoDB, conéctese al admin
base de datos:
use admin
switched to db admin
Ahora, imprima los usuarios con:
show users
{
"_id" : "admin.mongoAdmin",
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
También puede intentar acceder al shell de mongo sin ningún argumento (simplemente escriba mongo
) y vea si puede enumerar a los usuarios usando los mismos comandos que arriba.