Cuando gestionamos bases de datos en ambientes Linux siempre es bueno recurrir a diversas alternativas para administrarlas con el fin de que los datos permanezcan seguros y siempre disponibles.
MongoDB nos ofrece una amplia variedad de características ya que es una base de datos noSQL con la cual tenemos:
- Alto rendimiento
- Seguridad e integridad
- Gran disponibilidad
- Escalado automático lo cual nos garantiza estabilidad
Cuando mencionamos que MongoDB es una base de datos noSQL quiere decir que no puede usar SQL para insertar y trabajar los datos y estos datos no serán almacenados en tablas como ocurre con SQL ya que estos son almacenados en una estructura de documento como lo realiza el lenguaje JSON, en MongoDB es llamado BSON.
Gracias a estas características MongoDB se está posicionando como uno de los mejores gestores de bases de datos para ambientes Linux.
A continuación veremos cómo instalar MongoDB en Ubuntu Server 16.10.
1. Pasos previos instalación MongoDB
En primer lugar será necesario instalar el repositorio de MongoDB para temas de compatibilidad y conexión, para ello usaremos el siguiente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
El siguiente paso consiste en crear el repositorio de MongoDB el cuales estará almacenado en la ruta:
/etc/apt/sources.list.d/Para esto ejecutamos el siguiente comando:
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
El siguiente paso consiste en actualizar todos los paquetes del sistema incluidos los de MongoDB, para ello ejecutamos el siguiente comando:
sudo apt updateLos tendremos ya entonces actualizados.
2. Instalación de MongoDB
Cuando el repositorio se encuentre actualizado procedemos a la instalación de MongoDB en Ubuntu 16 usando el siguiente comando:
sudo apt-get install -y mongodb-org
Con este comando instalamos los paquetes con la última versión de MongoDB al igual que las herramientas de administración de MongoDB.
El siguiente paso consiste en crear un archivo de unidad de MongoDB para que sea ejecutado como un servicio en Ubuntu 16.
El tipo de unidad define cuando debe ejecutarse un servicio de forma automática. Procedemos a crear un archivo de unidad para MongoDB en la ruta /etc/systemd/system, para ello ejecutaremos el siguiente comando:
sudo nano /etc/systemd/system/mongodb.serviceEn la ventana desplegada debemos ingresar lo siguiente:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target [Service] User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Guardamos los cambios usando la combinación de teclas:
Ctrl + O
Y salimos del editor usando la combinación:
Ctrl + X
Esto es lo que hemos agregado al archivo:
A continuación procedemos a iniciar el servicio usando el siguiente comando:
systemctl daemon-reload (Actualizar el servicio) systemctl start mongod (Iniciar el servicio) systemctl enable mongod (Habilitar el servicio)
Podemos ver el estado del servicio usando el siguiente comando:
sudo systemctl status mongodb
Podemos ver que su estado es Active – Activo. Finalmente veremos que MongoDB usará el puerto 27017 para su comunicación, para ello usaremos el comando:
netstat -plntu
Con este comando podemos acceder a toda la estructura de la base de datos usando el siguiente comando:
sudo ufw allow 27017Accederemos a la estructura de la base de datos.
Para configurar el nombre y la contraseña del usuario en MongoDB será necesario acceder al Shell de MongoDB usando el termino:
mongo
Es posible que sea desplegado el siguiente mensaje:
Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly
Si esto es así debemos ejecutar el siguiente comando:
export LC_ALL=C
mongoEn la ventana del Shell de MongoDB ingresaremos lo siguiente:
use adminA continuación ingresaremos la siguiente línea para crear el usuario root:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Vemos que ha sido creado el usuario de forma correcta. Ingresamos exit para salir del Shell.
3. Habilitar la autenticación de MongoDB
Para habilitar la autenticación de los usuarios en MongoDB debemos acceder a la siguiente ruta:
/lib/systemd/system/mongod.servicePara editar una línea en específico. Usaremos el editor nano para acceder a dicha ruta:
sudo nano /lib/systemd/system/mongod.service
Allí debemos ir a la línea ExecStart y añadir la línea –auth
De este modo habilitamos la autenticación a la hora de iniciar sesión en MongoDB. Será necesario reiniciar el servicio usando el siguiente comando:
systemd daemon-reloadReiniciamos y listo.
Ahora reiniciamos la base de datos usando el siguiente comando:
sudo service mongod restartAhora nos conectaremos a la Shell de MongoDB usando la siguiente sintaxis:
mongo -u admin -p admin123 --authenticationDatabase admin
Podemos ver que la conexión ha sido satisfactoria. Si deseamos ver la capacidad disponible podemos usar la línea show dbs
Configurar MongoDB en Ubuntu 16 es sencillo y será de una ayuda importante para la gestión de los datos que sean necesarios de una forma segura, dinámica y totalmente escalable.