En este artículo veremos cómo instalar MongoDB en FreeBSD 11 paso a paso, de manera que puedas empezar a trabajar con este motor de bases de datos NoSQL sobre tu servidor o VPS FreeBSD, tanto desarrollando proyectos propios como preparando los requisitos de aplicaciones de terceros.
Contenido
Antes de instalar MongoDB en FreeBSD 11
Si quieres seguir los pasos de esta guía de instalación de MongoDB en FreeBSD 11 sólo necesitas cumplir los siguientes requerimientos mínimos:
- Una máquina FreeBSD 11 actualizada.
- Un usuario con permisos de sudo.
- Acceso a Internet.
Cómo instalar MongoDB en FreeBSD 11
Vamos a instalar MongoDB en FreeBSD 11 directamente desde los repositorios del sistema, que nos ofrecen varias ramas del servicio (3.6, 4.0, 4.2, 4.4, 4.9 y 5.0), aunque en este tutorial nos decantamos por la más avanzada. En primer lugar actualizaremos la información de los repositorios del sistema:
~$ sudo pkg update
Instalaremos el paquete mongodb50 con pkg:
~$ sudo pkg install -y mongodb50
Recuerda que dispones de paquetes para versiones anteriores.
Tras la descarga e instalación de estos paquetes y sus dependencias se crea un nuevo servicio en FreeBSD 11, el servicio mongod que tendremos que habilitar editando el archivo rc.conf:
~$ sudo nano /etc/rc.conf
Añadimos al final del archivo la siguiente línea:
... mongod_enable="YES"
Una vez guardados los cambios, ya podemos arrancar el servicio de forma manual por primera vez:
~$ sudo service mongod start
Podemos comprobar el estado del servicio con el comando service mongod status
:
Cómo conectar con MongoDB en FreeBSD 11
Para conectar al servicio MongoDB en FreeBSD 11 disponemos del cliente de consola mongo, incluido en la instalación que ya hemos realizado. Conectamos sin necesidad de añadir ningún parámetro u opción:
~$ mongo MongoDB shell version v5.0.2 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("9ebe8ad1-1826-4df9-88be-d817e529e8a0") } MongoDB server version: 5.0.2 ================ Warning: the "mongo" shell has been superseded by "mongosh", which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in an upcoming release. We recommend you begin using "mongosh". For installation instructions, see https://docs.mongodb.com/mongodb-shell/install/ ================ --- The server generated these startup warnings when booting: ###: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted ###: Soft rlimits for open file descriptors too low ###: currentValue: 28494 ###: recommendedMinimum: 64000 --- --- Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring() --- >
Vemos mucha informacion en consola sobre el estado de MongoDB, parte de ella relativa a la posibilidad de activar un servicio anónimo de estadísticas. Mientras no indiquemos explícitamente si deseamos o no permitir este servicio, se mostrará el aviso en cada conexión.
Si no nos interesa dicho servicio lo desactivamos con el comando db.disableFreeMonitoring():
> db.disableFreeMonitoring()
Y si queremos probarlo, lo activamos con db.enableFreeMonitoring():
> db.enableFreeMonitoring()
Para cerrar la conexión podemos usar el comando exit:
> exit
Cómo configurar MongoDB en FreeBSD 11
Configurar los parámetros del kernel
Cada vez que accedemos al servicio con el cliente mongo, vemos esta información:
... ...: Soft rlimits too low ...: currentValue: 28494 ...: recommendedMinimum: 64000 ...
Se refiere a la restricción actual de la configuración del kernel de FreeBSD 11 en cuanto a la apertura máxima de archivos. Cambiaremos esta configuración editando el archivo sysctl.conf:
~$ sudo nano /etc/sysctl.conf
Añadimos al final del archivo la siguiente configuración, que es el valor mínimo recomendado por MongoDB para FreeBSD 11:
... kern.maxfilesperproc=64000
Tras guardar los cambios, será necesario reiniciar FreeBSD 11 para aplicar esta nueva configuración del kernel. En la siguiente conexión ya no debería mostrarse este aviso.
Acceso mediante contraseña
Por defecto MongoDB en FreeBSD 11 no tiene restricciones de acceso, algo que podría no ser seguro. Podemos activar el uso de contraseñas editando el archivo de configuración mongodb.conf:
~$ sudo nano /usr/local/etc/mongodb.conf
Buscamos la directiva security:
... #security: ...
Está desactivada, la activamos eliminando el carácter # al incio de línea y añadimos el parámetro authorization:
... security: authorization: enabled ...
En este archivo no se pueden utilizar tabulaciones, sólo espacios en blanco.
Guardados los cambios, reiniciamos el servicio para aplicar la nueva configuración:
~$ sudo service mongod restart
Ahora conectamos al servicio con el cliente de consola mongo:
~$ mongo
Activamos la base de datos principal:
> use admin
Creamos el usuario administrador, que se almacena en esta base de datos:
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
Cerramos la conexión:
> exit
Para conectar al servicio con el nuevo usuario administrador utilizamos el parámetro -u del cliente mongo y veremos que se solicita la contraseña:
~$ mongo -u instalador MongoDB shell version v5.0.2 Enter password: ... >
Acceso remoto
Por defecto MongoDB sólo atiende peticiones locales en FreeBSD 11, pero si queremos poder trabajar en red con este servicio realizaremos algún ajuste en su configuración editando mongodb.conf:
~$ sudo nano /usr/local/etc/mongodb.conf
Buscamos la directiva bindIp:
... # network interfaces net: port: 27017 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. ...
Cambiamos su valor por 0.0.0.0:
... bindIp: 0.0.0.0 ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo service mongod restart
Para probar el funcionamiento en red del servicio, podemos acceder desde la consola de otra máquina de la red que cuente con el cliente mongo, utilizando los parámetros –host y -u para indicar la dirección del servidor FreeBSD 11 y el usuario con el que queremos acceder, respectivamente:
~$ mongo --host freebsd11.local.lan -u instalador
Conclusión
Ahora que sabes cómo instalar MongoDB en FreeBSD 11 ya puedes trabajar con este servicio de bases de datos NoSQL tanto en desarrollos propios como preparando el entorno de aplicaciones y plataformas de terceros, de forma rápida y fácil.
¡Apoya comoinstalar.me!
¿Ya funciona este motor de bases de datos en tu máquina gracias a esta guía? Si es así y te apetece agradecérnoslo puedes hacerlo dejando una propina de 1 $ desde PayPal:
O, si te sientes especialmente generoso, puedes invitarnos a un café:
¡Gracias!