MongoDB es una base de datos NoSQL que ofrece alto rendimiento, alta disponibilidad y escalado automático de la base de datos de nivel empresarial. MongoDB es una base de datos NoSQL, por lo que no puede usar SQL (lenguaje de consulta estructurado) para insertar y recuperar datos, y no almacena datos en tablas como MySQL o Postgres. Los datos se almacenan en una estructura de "documento" en formato JSON (llamado BSON en MongoDB). MongoDB se introdujo en 2009 y actualmente está siendo desarrollado por MongoDB Inc.
MongoDB solo ofrece paquetes para versiones de Ubuntu LTS (soporte a largo plazo) de 64 bits. Por ejemplo, 14.04 LTS (fiable), 16.04 LTS (xenial), 18.04 LTS (biónico), etc.
En este tutorial, instalaré MongoDB 4.0 en Ubuntu 18.04 LTS.
Requisitos
- Servidor Ubuntu 18.04 - 64 bits
- Privilegios de raíz
Qué haremos en este tutorial:
- Instalar MongoDB
- Configurar MongoDB
- Conclusión
Instalar MongoDB en Ubuntu 18.04 LTS
Paso 1 - Importación de la clave pública
El administrador de paquetes de Ubuntu apt (herramienta avanzada de paquetes) requiere las claves GPG del distribuidor de software para garantizar la coherencia y la autenticidad del paquete. Ejecute este comando para importar claves MongoDB a su servidor.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4
Paso 2:crear el archivo de lista de fuentes MongoDB
Cree un archivo de lista MongoDB en /etc/apt/sources.list.d/ con este comando:
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Paso 3 - Actualizar el repositorio
actualice el repositorio con el comando apt:
sudo apt-get update
Paso 4 - Instalar MongoDB
Ahora puede instalar MongoDB escribiendo este comando:
sudo apt-get install -y mongodb-org
El instalador apt de MongoDB creó un archivo mongod.service para Systemd automáticamente, por lo que ya no es necesario crearlo manualmente.
Inicie MongoDB y agréguelo como un servicio que se iniciará en el momento del arranque:
sudo systemctl iniciar mongod
sudo systemctl habilitar mongod
Ahora verifique que MongoDB se haya iniciado en el puerto 27017 con el comando netstat.
sudo netstat -plntu
Configurar nombre de usuario y contraseña de MongoDB
Cuando los paquetes de MongoDB están instalados, puede configurar el nombre de usuario y la contraseña para el servidor de la base de datos:
Paso 1:abrir mongo shell
Antes de configurar un nombre de usuario y una contraseña para MongoDB, debe abrir el shell de MongoDB en su servidor. Puede iniciar sesión escribiendo:
mongo
Si obtiene un error Inicialización global fallida:BadValue Invalid o no se ha establecido la configuración regional del usuario. Asegúrese de que las variables de entorno LANG y/o LC_* estén configuradas correctamente, pruebe el comando:
export LC_ALL=C
mongo
Paso 2:cambie al administrador de la base de datos
Una vez que esté en el shell de MongoDB, cambie a la base de datos llamada admin :
use admin
Paso 3:crear el usuario raíz
Crea el usuario root con este comando:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Descripcion: Cree un administrador de usuario con contraseña admin123 y tenga el permiso/rol como raíz y la base de datos es admin .
Ahora escriba exit para salir del shell de MongoDB.
exit
Y estás de vuelta en el shell de Linux.
Paso 4:habilitar la autenticación MongoDB
Edite el archivo de servicio mongodb '/lib/systemd/system/mongod.service' con su editor.
sudo nano /lib/systemd/system/mongod.service
En el 'ExecStart ' línea 9, agregue la nueva opción '--auth '.
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
Guarde el archivo de servicio y salga de nano.
Vuelva a cargar el servicio systemd:
sudo systemctl daemon-reload
Paso 5:reinicie MongoDB e intente conectarse
Ahora reinicie MongoDB y conéctese con el usuario creado.
sudo service mongod restart
y conéctese al shell de MongoDB con este comando:
mongo -u admin -p admin123 --authenticationDatabase admin
y verá la salida como esta:
Habilitar el acceso externo y configurar el Firewall UFW
UFW es el cortafuegos predeterminado en Ubuntu. En este capítulo, mostraré cómo configurar UFW para permitir el acceso externo a MongoDB.
Verifique el estado de UFW
sudo ufw status
Cuando el resultado es:
Status: inactive
Habilite UFW con este comando y abra el puerto SSH primero si está conectado por SSH:
sudo ufw allow ssh
sudo ufw enable
antes de continuar con los siguientes pasos.
Por razones de seguridad, debe permitir el acceso al puerto 27017 de MongoDB solo desde las direcciones IP que necesitan acceder a la base de datos. De forma predeterminada, localhost siempre puede acceder a él, por lo que no es necesario abrir el puerto MongoDB para IP 127.0.0.1.
Sintaxis del cortafuegos UFW
sudo ufw allow from <target> to <destination> port <port number>
Abrir puerto MongoDB en UFW
Para permitir el acceso desde la IP externa 192.168.1.10 a MongoDB, use este comando:
sudo ufw allow from 192.168.1.10 to any port 27017
Reemplace la dirección IP en el comando anterior con la IP externa a la que desea permitir el acceso a MongoDB.
Si desea abrir el puerto MongoDB para cualquier IP, p. en caso de que lo ejecute en una red local y todos los sistemas de esa red puedan acceder a MongoDB, utilice este comando:
sudo ufw allow 27017
Verifique el estado del firewall UFW con este comando:
sudo ufw status
MongoDB escucha localhost de forma predeterminada, para que la base de datos sea accesible desde el exterior, debemos reconfigurarla para que también escuche en la dirección IP del servidor.
Abra el archivo mongod.conf en el editor nano:
sudo nano /etc/mongod.conf
y agregue la dirección IP del servidor en la línea bind_ip de esta manera:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192,168.1.100
Reemplace 192.168.1.100 con la IP de su servidor, luego reinicie MongoDB para aplicar los cambios.
sudo service mongod restart
Ahora puede acceder al servidor de la base de datos MongoDB a través de la red.
Imagen de máquina virtual
Este tutorial está disponible como una máquina virtual lista para usar en formato OVA/OVF para los suscriptores de Howtoforge. El formato VM es compatible con VMWare y Virtualbox y otras herramientas que pueden importar el formato ova u ovf. Puede encontrar el enlace de descarga en el menú derecho en la parte superior. Haga clic en el nombre del archivo para iniciar la descarga.
Los detalles de inicio de sesión de la máquina virtual son:
Inicio de sesión SSH
Nombre de usuario: administrador
Contraseña:howtoforge
El usuario administrador tiene permisos sudo.
Cambie las contraseñas después del primer arranque.
La VM está configurada para la IP estática 192.168.1.100. Las instrucciones sobre cómo cambiar la IP estática se pueden encontrar aquí.
Conclusión
MongoDB es una base de datos NoSQL muy conocida que ofrece alto rendimiento, alta disponibilidad y escalado automático. Se diferencia de RDBMS como MySQL, PostgreSQL y SQLite porque no usa SQL para establecer y recuperar datos. MongoDB almacena datos en `documentos` llamados BSON (representación binaria de JSON con información adicional). MongoDB solo está disponible para la versión de Ubuntu con soporte a largo plazo de 64 bits.