En esta ocasión veremos cómo instalar MongoDB en FreeBSD 12 paso a paso, de modo que puedas trabajar con este potente motor de bases de datos en tu servidor o VPS FreeBSD tanto para tus desarrollos como para soporte de otras aplicaciones.
Contenido
Antes de instalar MongoDB en FreeBSD 12
Para completar esta pequeña guía de instalación de MongoDB en FreeBSD 12 bastará con cumplir los siguientes requisitos mínimos:
- Un sistema FreeBSD 12 actualizado.
- Un usuario con permisos de sudo o root.
- Acceso a Internet.
Hay que tener en cuenta que mongodb.com no ofrece repositorio oficial para FreeBSD, por lo que nos conformaremos con la última versión disponible en los repositorios de FreeBSD 12.
Cómo instalar MongoDB en FreeBSD 12
Vamos a instalar MongoDB en FreeBSD 12 desde los repositorios del sistema, así que la primera acción a realizar será actualizar las listas de paquetes disponibles:
~$ sudo pkg update
El paquete que necesitamos es mongodb50, que instalaremos con pkg:
~$ sudo pkg install -y mongodb50
Tras la descarga e instalación de MongoDB y sus dependencias, aparece en FreeBSD 12 un nuevo servicio llamado mongod. Este servicio por defecto no queda en ejecución y tampoco está habilitado para su inicio automático, así que realizaremos manualmente estos ajustes.
Primero habilitamos el servicio MongoDB para que inicie automáticamente en cada arranque de FreeBSD 12:
~$ sudo service mongod enable
Y después nos aseguraremos de que el servicio arranca:
~$ sudo service mongod start
Podremos comprobar en cualquier momento que el servicio MongoDB se encuentra en ejecución mediante el comando service mongod status
:
Conectar a MongoDB en FreeBSD 12
Para conectar a MongoDB en FreeBSD 12 utilizaremos el cliente de consola mongo:
~$ mongo MongoDB shell version v5.0.6 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("fd2d40d6-a4ab-4b62-92ec-3f6df0c42672") } MongoDB server version: 5.0.6 ================ 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. 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: 28404 ###: 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() --- >
La primera vez que conectamos recibimos bastantes avisos, como podemos ver. Uno de estos avisos, que se repetirá constantemente en cada inicio de sesión, nos avisa sobre la existencia de cierto servicio anónimo de estadísticas de uso. Para dejar de recibir este aviso debemos aceptar o rechazar el uso del servicio.
Si quieres utilizar el servicio de estadísticas anónimas usa este comando:
> db.enableFreeMonitoring()
Y si no deseas utilizarlo usa este otro:
> db.disableFreeMonitoring()
Para cerrar la conexión usaremos el comando exit:
> exit
Cómo configurar MongoDB en FreeBSD 12
A la hora de configurar MongoDB en FreeBSD 12 debemos tener en cuenta que el archivo principal de configuración, mongod.conf, se encuentra en la ruta /usr/local/etc/.
Cómo configurar el acceso por contraseña
Para activar el uso de contraseña en MongoDB editaremos la configuración del servicio:
~$ sudo nano /usr/local/etc/mongodb.conf
Buscamos la directiva security:
... #security: ...
Activaremos esta directiva borrando el carácter # inicial, y añadiremos también la directiva authorization:
... security: authorization: enabled ...
Para sangrar o indentar las líneas en este archivo de configuración sólo se pueden usar espacios en blanco, no se pueden usar tabulaciones.
Guardamos los cambios y reiniciamos el servicio:
~$ sudo service mongod restart
Ahora conectaremos al servicio con el cliente mongo para crear un usuario administrador con contraseña:
~$ mongo
Seleccionamos la base de datos principal:
> use admin
Y creamos el usuario administrador:
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
Ya podemos cerrar la conexión:
> exit
Cuando conectemos al servicio con el nuevo usuario, se nos solicitará la contraseña:
~$ mongo -u instalador MongoDB shell version v5.0.6 Enter password: ... >
Ajuste de parámetros del kernel
El siguiente ajuste más que a MongoDB corresponde al sistema. Al iniciar sesión puede que observes un aviso similar a este:
... ...: Soft rlimits too low ...: currentValue: 28377 ...: recommendedMinimum: 64000 ...
Para evitar este aviso habrá que ajustar algún parámetro del kernel en el archivo sysctl.conf:
~$ sudo nano /etc/sysctl.conf
Añadimos esta línea:
... kern.maxfilesperproc=64000
Una vez guardado el archivo, los cambios se aplicarán en el siguiente inicio del sistema, de modo que al iniciar sesión en MongoDB no se mostrará la advertencia.
Acceso remoto a MongoDB en FreeBSD 12
En el caso de que necesites acceder remotamente a MongoDB en FreeBSD 12 habrá que realizar algún ajuste adicional en el archivo mongod.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. ...
Y cambiamos su valor por 0.0.0.0:
... bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo service mongod restart
Ahora desde otra máquina que tenga instalado un cliente de MongoDB, como el cliente de consola mongo que hemos usado en el sevidor, conectaremos indicando con el parámetro –host la dirección IP o nombre DNS del servidor FreeBSD 12 y con el parámetro -u el usuario con el que queremos conectar.
Por ejemplo, para conectar remotamente a la máquina sobre la que hemos estado trabajando en este tutorial emplearíamos el siguiente comando:
~$ mongo --host freebsd12.local.lan -u instalador
Podremos observar que recibimos un aviso indicando que no coinciden las versiones de MongoDB en el servidor y en el cliente, pero la conexión es posible y ya podemos trabajar de forma remota.
Conclusión
Ahora que sabes cómo instalar MongoDB en FreeBSD 12 puedes disfrutar de este motor de bases de datos NoSQL en tu sistema tanto para tus propios desarrollos como para dar soporte a las aplicaciones que lo incluyen como requisito.
Si tienes alguna duda, pregunta, sugerencia de mejoras de este artículo o notificaciones de errores, etc. un comentario sería lo adecuado.
¡Apoya comoinstalar.me!
¿Ya puedes trabajar con bases de datos NoSQL gracias a esta guía de instalación de MongoDB en FreeBSD 12? Si es así y te apetece mostrar tu agradecimiento cualquier mínima aportación ayuda mucho al mantenimiento de este sitio y la elaboración de futuros tutoriales de FreeBSD 12 o MongoDB.
Puedes ayudarnos dejando desde 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!
¿No sería mejor crear el usuario «instalador» antes de habilitar la autenticación?
Es un excelente punto de partida esta entrada para poder asegurar la instalación de MongoDB. Vengo de MariaDB a explorar el Stack MEAN y partí por aquí.
¡Muchas gracias por compartir!
¡Hola, Óscar! El orden expuesto se estableció para cacharrear un poco con el servicio y revisar algún concepto que otro. Me alegra saber que te ha servido.