MongoDB es una base de datos documental gratuita y de código abierto. Pertenece a una familia de bases de datos llamada NoSQL, que es diferente de las tradicionales bases de datos SQL basadas en tablas como MySQL y PostgreSQL.
En MongoDB, los datos se almacenan en documentos flexibles, de tipo JSON, donde los campos pueden variar de un documento a otro. No requiere un esquema predefinido, y la estructura de los datos puede cambiarse con el tiempo.
En este tutorial, cubriremos el proceso de instalación y configuración de la última versión de MongoDB Community Edition en una máquina Ubuntu 18.04 desde los repositorios oficiales de MongoDB.
Requisitos previos #
Antes de continuar con este tutorial, asegúrate de haber iniciado sesión como usuario con privilegios sudo.
Instalación de MongoDB #
En el 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ígete a la sección Install on Ubuntusection de la documentación de MongoDB, y comprueba si hay una nueva versión disponible.
Los siguientes pasos describen cómo instalar MongoDB en su servidor Ubuntu:
-
Añada la clave GPG de MongoDB a su sistema utilizando el siguiente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Una vez importada la clave, añada el repositorio de MongoDB con:
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Si obtiene un mensaje de error que dice
add-apt-repository command not found
, instale el paquetesoftware-properties-common
.Para instalar una versión anterior de MongoDB, sustituya
4.0
por su versión preferida. -
Actualice la lista de paquetes e instale el metapaquete
mongodb-org
escribiendo:sudo apt update
sudo apt install mongodb-org
Los siguientes paquetes se instalarán en su sistema como parte del paquete
mongodb-org
:-
mongodb-org-server
– El demoniomongod
y los correspondientes scripts init y configuraciones. -
mongodb-org-mongos
– El demoniomongos
. -
mongodb-org-shell
– El mongo shell es una interfaz interactiva de JavaScript 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, así como otras utilidades.
-
-
Una vez completada la instalación, inicie el demonio de MongoDB y permita que se inicie al arrancar 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 bases de datos MongoDB utilizando la herramienta
mongo
e imprimiremos el estado de la conexión:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
La salida tendrá el siguiente aspecto:
MongoDB shell version v4.0.10connecting to: mongodb://127.0.0.1:27017MongoDB server version: 4.0.10{ "authInfo" : { "authenticatedUsers" : , "authenticatedUserRoles" : }, "ok" : 1}
Un valor de
1
para el campook
indica éxito.
Configuración de MongoDB #
MongoDB utiliza 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 por defecto 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:
security: authorization: enabled
La opción authorization
habilita el Control de Acceso Basado en Roles (RBAC)que regula el acceso de los usuarios a los recursos y operaciones de la base de datos. Si esta opción está deshabilitada cada usuario tendrá acceso a todas las bases de datos y realizará cualquier acción.
Después de realizar los 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 de las opciones del archivo de configuración.
Creación del usuario administrativo de MongoDB #
Si ha habilitado la autenticación de MongoDB, cree un usuario administrativo de MongoDB que se utilizará para acceder y gestionar la instancia de MongoDB.
Primero, accede al shell de mongo con:
mongo
Una vez que estés dentro del shell de MongoDB escribe el siguiente comando para conectarte a la base de datos admin
:
use admin
switched to db admin
Ejecuta el siguiente comando para crear un nuevo usuario llamado mongoAdmin
con el rol userAdminAnyDatabase
:
db.createUser( { user: "mongoAdmin", pwd: "changeMe", roles: })
Successfully added user: {"user" : "mongoAdmin","roles" : }
Salga de la shell de mongo con:
quit()
Para probar los cambios, acceda a la shell de mongo utilizando el usuario administrativo que ha creado previamente:
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin
Ahora, imprima los usuarios con:
show users
{"_id" : "admin.mongoAdmin","user" : "mongoAdmin","db" : "admin","roles" : ,"mechanisms" : }
También puedes intentar acceder a la shell de mongo sin ningún argumento ( sólo escribe mongo
) y ver si puedes listar los usuarios usando los mismos comandos anteriores.
Conclusión #
Ha aprendido a instalar y configurar MongoDB 4.0 en su servidor Ubuntu 18.04. Visite el Manual de MongoDB 4.0para obtener más información sobre este tema.