Cómo instalar MongoDB en FreeBSD 11

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.

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:

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg update
~$ sudo pkg update
~$ sudo pkg update

Instalaremos el paquete mongodb50 con pkg:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg install -y mongodb50
~$ sudo pkg install -y mongodb50
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/rc.conf
~$ sudo nano /etc/rc.conf
~$ sudo nano /etc/rc.conf

Añadimos al final del archivo la siguiente línea:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
mongod_enable="YES"
... mongod_enable="YES"
...
mongod_enable="YES"

Una vez guardados los cambios, ya podemos arrancar el servicio de forma manual por primera vez:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mongod start
~$ sudo service mongod start
~$ sudo service mongod start

Podemos comprobar el estado del servicio con el comando

service mongod status
service mongod status:

como instalar mongodb en freebsd 11

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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ 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()
---
>
~$ 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() --- >
~$ 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():

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> db.disableFreeMonitoring()
> db.disableFreeMonitoring()
> db.disableFreeMonitoring()

Y si queremos probarlo, lo activamos con db.enableFreeMonitoring():

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> db.enableFreeMonitoring()
> db.enableFreeMonitoring()
> db.enableFreeMonitoring()

Para cerrar la conexión podemos usar el comando exit:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> exit
> 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
...: Soft rlimits too low
...: currentValue: 28494
...: recommendedMinimum: 64000
...
... ...: Soft rlimits too low ...: currentValue: 28494 ...: recommendedMinimum: 64000 ...
...
        ...: 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/sysctl.conf
~$ sudo nano /etc/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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
kern.maxfilesperproc=64000
... kern.maxfilesperproc=64000
...
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /usr/local/etc/mongodb.conf
~$ sudo nano /usr/local/etc/mongodb.conf
~$ sudo nano /usr/local/etc/mongodb.conf

Buscamos la directiva security:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
#security:
...
... #security: ...
...
#security:
...

Está desactivada, la activamos eliminando el carácter # al incio de línea y añadimos el parámetro authorization:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
security:
authorization: enabled
...
... security: authorization: enabled ...
...
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mongod restart
~$ sudo service mongod restart
~$ sudo service mongod restart

Ahora conectamos al servicio con el cliente de consola mongo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mongo
~$ mongo
~$ mongo

Activamos la base de datos principal:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> use admin
> use admin
> use admin

Creamos el usuario administrador, que se almacena en esta base de datos:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})

Cerramos la conexión:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> exit
> exit
> 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mongo -u instalador
MongoDB shell version v5.0.2
Enter password:
...
>
~$ mongo -u instalador MongoDB shell version v5.0.2 Enter password: ... >
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /usr/local/etc/mongodb.conf
~$ sudo nano /usr/local/etc/mongodb.conf
~$ sudo nano /usr/local/etc/mongodb.conf

Buscamos la directiva bindIp:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
# 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.
...
... # 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. ...
...
# 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
bindIp: 0.0.0.0
...
... bindIp: 0.0.0.0 ...
...
  bindIp: 0.0.0.0
...

Guardamos los cambios y reiniciamos el servicio:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mongod restart
~$ sudo service mongod restart
~$ 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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mongo --host freebsd11.local.lan -u instalador
~$ mongo --host freebsd11.local.lan -u instalador
~$ mongo --host freebsd11.local.lan -u instalador

como configurar mongodb en freebsd 11

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!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario