MongoDB es una base de datos de documentos gratuita y de código abierto. Está clasificada como una base de datos NoSQL, que es diferente a 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 MongoDB Community Edition en un servidor CentOS 7 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 disponible en los repositorios oficiales de MongoDB es la versión 4.0. Antes de continuar con el siguiente paso, visite la sección Instalar en Red Hat de la documentación de MongoDB y verifique si hay una nueva versión disponible.
Siga los pasos a continuación para instalar la última versión estable de MongoDB en su servidor CentOS:
-
Habilitando el repositorio de MongoDB
Para agregar el repositorio MongoDB a su sistema, abra su editor de texto y cree un nuevo archivo de configuración del repositorio YUM llamado
/etc/yum.repos.d/mongodb-org.repomongodb-org.repo
dentro del/etc/yum.repos.d/
directorio:[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Si desea instalar una versión anterior de MongoDB, reemplace cada instancia de
4.0
con su versión preferida. -
Instalando MongoDB
Ahora que el repositorio está habilitado, puede instalar
mongodb-org
meta-paquete usando la utilidad yum:sudo yum install mongodb-org
Durante la instalación, yum le pedirá que importe la clave GPG de MongoDB. Escribe
y
y pulsaEnter
.Los siguientes paquetes se instalarán en su sistema como parte de
mongodb-org
paquete:mongodb-org-server
- Elmongod
daemon, y los scripts y configuraciones de inicio correspondientes.mongodb-org-mongos
- Losmongos
demonio.mongodb-org-shell
- Mongo Shell, una interfaz JavaScript interactiva para MongoDB, utilizada 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.
-
Iniciando MongoDB
Una vez completada la instalación, inicie el demonio MongoDB y habilítelo para que se inicie en el arranque escribiendo:
sudo systemctl start mongod
sudo systemctl enable mongod
-
Verificando la instalación de MongoDB
Para verificar la instalación nos conectaremos al servidor de base de datos MongoDB usando el
mongo
herramienta e imprima la versión del servidor:mongo
Una vez que esté dentro del shell de MongoDB, escriba el siguiente comando que mostrará la versión de MongoDB:
db.version()
La salida será similar a la siguiente:
4.0.1
Configurando MongoDB #
Puede configurar su instancia de MongoDB editando /etc/mongod.conf
archivo de configuración que está escrito en YAML.
Los ajustes de configuración predeterminados son suficientes en la mayoría de los casos. Sin embargo, para entornos de producción, recomendamos 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 cualquier base de datos y podrá ejecutar cualquier acción.
Después de realizar cambios en el archivo de configuración de MongoDB, reinicie el servicio mongod:
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 usará para acceder y administrar su 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
Crea 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 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" : [
{
"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.