En esta entrada veremos cómo instalar MongoDB en CentOS 6 paso a paso, de forma que puedas trabajar con este gran sistema de bases de datos NoSQL sobre tu servidor o VPS CentOS.
Contenido
Antes de instalar MongoDB en CentOS 6
Si quieres seguir los pasos de esta guía de instalación de MongoDB en CentOS 6 sólo será necesario cumplir los siguientes requisitos básicos:
- Una máquina CentOS 6 lo más actualizada posible.
- Un usuario con permisos de sudo.
- Acceso a Internet.
Cómo configurar el repositorio oficial de MongoDB para CentOS 6
Vamos a configurar el repositorio oficial de MongoDB para CentOS 6 y así poder trabajar con la versión más reciente posible para esta versión de la distribución.
Empezaremos creando el archivo de configuración del repositorio:
~$ sudo nano /etc/yum.repos.d/mongodb.org-4.4.repo
El contenido será el siguiente:
[mongodb-org-4.4] name=Repositorio de MongoDB para CentOS 6 baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=http://www.mongodb.org/static/pgp/server-4.4.asc
Ya podemos guardar el archivo y actualizar las listas de paquetes para que se incluyan también los pertenecientes a MongoDB:
~$ sudo yum update
Cómo instalar MongoDB en CentOS 6
Para instalar MongoDB en CentOS 6 obtendremos el paquete mongodb-org con la herramienta yum:
~$ sudo yum install -y mongodb-org
Tras la descarga e instalación de MongoDB y sus dependencias se crea un nuevo servicio en CentOS 6, el servicio mongod, que no queda en ejecución, sino que tendremos que arrancarlo manualmente:
~$ sudo service mongod start
En cualquier momento podemos comprobar el estado del servicio con el comando service mongod status
:
El servicio queda hablitado para su inicio automático con cada arranque de CentOS 6.
Cómo conectar a MongoDB en CentOS 6
Para conectar con MongoDB Server desde consola podemos usar el cliente mongo sin argumentos:
~$ mongo MongoDB shell version v4.4.13 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("850f997d-fbe7-46cb-bd87-f85a30b52018") } MongoDB server version: 4.4.13 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see https://docs.mongodb.com/ Questions? Try the MongoDB Developer Community Forums https://community.mongodb.com --- The server generated these startup warnings when booting: ###: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem ###: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted ###: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never' ###: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never' --- --- 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() --- >
Veremos bastante información al establecer la conexión, entre la que podemos destacar avisos sobre el uso de MongoDB sin contraseña y la disponibilidad de un servicio de estadísticas gratuito. Este último aviso se repetirá en cada conexión hasta que decidamos habilitarlo o deshabilitarlo.
Podemos deshabilitar el servicio de estadísticas con el comando db.disableMonitoring():
> db.disableFreeMonitoring()
O podemos habilitarlo si nos parece interesante:
> db.enableFreeMonitoring()
Podemos cerrar la conexión con el comando exit:
> exit
Cómo configurar MongoDB en CentOS 6
Para configurar MongoDB en CentOS 6 debemos trabajar sobre su archivo de configuración mongod.conf, que se encuentra en la ruta /etc/.
Acceso con contraseña
Editamos el archivo de configuración mongod.conf:
~$ sudo nano /etc/mongod.conf
Buscamos la directiva security:
... #security: ...
La habilitaremos eliminando el carácter # al inicio de línea y añadiremos el apartado authorization con el valor enabled:
... security: authorization: enabled ...
Para sangrar el texto en este archivo de configuración no se pueden usar tabulaciones, sino espacios en blanco.
Guardados los cambios hay que reiniciar el servicio:
~$ sudo service mongod restart
Crear un administrador para MongoDB en CentOS 6
Puede ser interesante crear un usuario con capacidades de administración, protegido por contraseña. Para ello iniciamos sesión anónima con el cliente mongo:
~$ mongo
Conectamos con la base de datos principal:
> use admin
Creamos el nuevo usuario administrador con contraseña:
> db.createUser({user: "instalador", pwd: "XXXXXXXX", roles: [{role: "root", db: "admin"}]})
Y cerramos la conexión:
> exit
Ya podemos iniciar sesión con el nuevo usuario administrador, usando el parámetro -u para especificar su nombre. En esta ocasión se nos solicitará contraseña:
~$ mongo -u instalador MongoDB shell version v4.4.13 Enter password: ... >
Veremos que ya no aparecen avisos de seguridad sobre posibilidad de accesos no autorizados.
Acceso remoto a MongoDB Server
Por defecto MongoDB sólo permite conexiones locales en CentOS 6, pero podemos configurar fácilmente el servicio para que admita conexiones remotas. Para ello editamos el archivo de configuración:
~$ sudo nano /etc/mongod.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. ...
Cambiaremos su valor por 0.0.0.0:
... bindIp: 0.0.0.0 ...
Guardamos los cambios y cerramos el archivo, y reiniciamos el servicio:
~$ sudo service mongod restart
Firewall
Para poder permitir conexiones entrantes al servicio MongoDB en CentOS 6 es necesario configurar el firewall, ya que suele estar activado por defecto.
Comprobamos el estado actual del firewall, viendo las reglas de entrada:
~$ sudo iptables -L INPUT --line Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT all -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 5 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
En este ejemplo concreto vemos que la 5ª regla (línea nº 5) rechaza todo el tráfico entrante, por lo que las excepciones deberán añadirse antes de esta línea. Añadiremos la regla para MongoDB justo en esa posición:
~$ sudo iptables -I INPUT 5 -m state --state NEW -p tcp --dport 27017 -j ACCEPT
Y guardamos la configuración del firewall para hacerla permanente:
~$ sudo service iptables save
Cómo probar el acceso remoto
Desde otra máquina en red establecemos conexión con un cliente como mongo, utilizando el parámetro –host para indicar la dirección del servidor CentOS 6 y -u para el usuario:
~$ mongo --host centos6.local.lan -u instalador
Se nos solicitará la contraseña y podremos conectar para trabajar de forma remota.
Conclusión
Ahora que sabes cómo instalar MongoDB en CentOS 6 ya puedes trabajar con este motor de bases de datos NoSQL sobre tu viejo y confiable servidor o VPS, tanto para tus propios desarrollos como para soporte de otros entornos y aplicaciones.
¡Apoya comoinstalar.me!
¿Ya funciona este servicio de bases de datos NoSQL en tu propio sistema gracias a nuestro pequeño tutorial? En ese caso, si quieres agradecérnoslo con una mínima contribución al mantenimiento de este sitio y la creación de más tutoriales y guías, puedes hacerlo dejando 1 $ como propina con PayPal:
O, si te sientes más generoso que la media, invitándonos a un café:
¡Gracias!