En este artículo, le mostraremos cómo instalar MongoDB, administrar sus servicios y permitir conexiones remotas en un Ubuntu 18.04 VPS.
MongoDB es un sistema de gestión de bases de datos de código abierto que pertenece a una familia de NoSQL. NoSQL es diferente de las bases de datos SQL tradicionales basadas en tablas (MySQL y PostgreSQL):los datos se almacenan en documentos flexibles similares a JSON sin un esquema predefinido, lo que permite realizar grandes cambios en las bases de datos sin tiempo de inactividad. Comencemos con la instalación.
Paso 1:Conéctese a su servidor
Antes de comenzar, debe conectarse a su servidor a través de SSH como usuario raíz. Para hacer esto, use el siguiente comando:
ssh root@IP_Address -p port_number
Deberá reemplazar IP_Address y port_number con la dirección IP del servidor real y el número de puerto SSH. Si no tiene acceso a la cuenta raíz, puede usar una cuenta con privilegios sudo en su lugar.
Una vez que haya iniciado sesión, asegúrese de que su servidor esté actualizado ejecutando los siguientes comandos:
sudo apt update sudo apt upgrade
Paso 2:Instalación de MongoDB
Los repositorios de paquetes de software oficiales de Ubuntu vienen con la versión 3.6.3 de MongoDB, pero en este artículo instalaremos MongoDB 4.0, que es la última versión disponible. Sin embargo, siempre puede verificar si hay una nueva versión de MongoDB disponible en su sitio web oficial.
Para instalar MongoDB 4.0 Community Edition en Ubuntu, necesitamos importar la clave pública utilizada por el sistema de administración de paquetes. Podemos hacerlo con el siguiente comando:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Ya que tenemos la clave importada ahora, podemos agregar el repositorio de MongoDB con la siguiente línea:
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Luego actualizamos la lista de paquetes:
sudo apt update
En este punto, el repositorio está habilitado y la lista de paquetes se actualiza; ahora podemos continuar con la instalación del paquete MongoDB CE ingresando el siguiente comando:
sudo apt install mongodb-org
Los paquetes mongodb-org-server, mongodb-org-mongos, mongodb-org-shell y mongodb-org-tools se instalarán en su sistema como parte del paquete mongodb-org.
MongoDB 4.0 Community Edition ahora está instalado en el servidor. Luego, debemos iniciar el servicio MongoDB y permitir que se inicie en el arranque.
sudo systemctl start mongod sudo systemctl enable mongod
Para verificar la instalación de MongoDB, podemos verificar el estado de la conexión escribiendo el comando:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Debería tener una salida similar a esta:
MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c806e0e1-ab30-4d41-b882-026c09d2893f") } MongoDB server version: 4.0.6 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Enhorabuena, ha instalado correctamente MongoDB en su servidor. El siguiente paso será configurar su servidor MongoDB.
Paso 3:Configuración de MongoDB
Podemos configurar la instancia de MongoDB modificando el mongod.conf
archivo, ubicado en /etc/
. Usaremos Nano para editar el archivo, pero puede usar su editor de texto preferido si lo desea.
sudo nano /etc/mongod.conf
Para permitir conexiones remotas y una mejor seguridad de MongoDB, haremos algunos cambios en el archivo de configuración. MongoDB por defecto escucha las conexiones en el puerto 27017 en localhost (IP 127.0.0.1) solamente. Para permitir una conexión MongoDB remota, debe agregar la dirección IP de su servidor al archivo de configuración de MongoDB. Esto se muestra como un ejemplo a continuación:
bind_ip = 127.0.0.1, your_server_ip #port = 27017 security: authorization: enabled
También incluimos una opción de autorización que regulará el acceso de los usuarios a las bases de datos de MongoDB. Si la opción de autorización no está habilitada, cada usuario tendrá acceso a todas las bases de datos de MongoDB y podrá realizar cualquier acción, lo que es un riesgo de seguridad. Después de guardar los cambios en el archivo de configuración de MongoDB, debemos reiniciar el servicio de MongoDB con el siguiente comando para que los cambios surtan efecto:
sudo systemctl restart mongod
Paso 4:Creación de un usuario administrativo de MongoDB
Como configuramos el servidor MongoDB y habilitamos la opción de autenticación, ahora necesitamos crear una cuenta de usuario administrativa de MongoDB que se usará para administrar la instancia de MongoDB.
Para acceder al shell de mongo, escriba:
mongo
A continuación, usaremos el siguiente comando para conectarnos a la base de datos de administración:
use admin
Salida:
switched to db admin
Realizaremos el siguiente comando para crear un nuevo usuario administrativo llamado mongo_admin con el rol userAdminAnyDatabase:
db.createUser( { user: "mongo_admin", pwd: "Strong_Pas$w0rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Y obtendremos esto como resultado:
Successfully added user: { "user" : "mongo_admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
No olvide reemplazar 'Strong_Pas$w0rd' con una contraseña segura real. Ahora podemos salir del shell mongo:
quit()
Paso 5:Verificación del acceso del usuario administrativo
Para confirmar los cambios, accederemos al shell de mongo usando el usuario mongo_admin que creamos:
mongo -u mongo_admin -p --authenticationDatabase admin use admin show users
Y si siguió todos los pasos hasta ahora, debería tener el siguiente resultado:
Salida:
> use admin switched to db admin > show users { "_id" : "admin.mongo_admin", "user" : "mongo_admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
También puede intentar enumerar los usuarios cuando accede al shell de mongo (sin argumentos) y usar los mismos comandos que usamos antes.
Paso 6:permitir el acceso remoto a MongoDB en el cortafuegos
En este paso, proporcionaremos acceso remoto a nuestro MongoDB al permitirlo en nuestro firewall. Si no usa ningún firewall en su servidor, puede omitir este paso. El puerto predeterminado de MongoDB es 27017, por lo que en nuestros ejemplos, le mostraremos cómo permitir este puerto a través de su firewall.
Si está utilizando UFW (cortafuegos sin complicaciones), puede utilizar los siguientes consejos sobre cómo permitir que MongoDB sea accesible de forma remota.
Para permitir el acceso a MongoDB en su puerto predeterminado (27017) desde cualquier lugar, puede usar el siguiente comando:
sudo ufw allow 27017
Para permitir el acceso a MongoDB en su puerto predeterminado 27017 solo desde una dirección IP específica, puede usar el comando:
sudo ufw allow from allowed_IP_address/32 to any port 27017
Deberá cambiar la dirección_IP_permitida con la dirección IP real que desea usar.
Puede confirmar el cambio en la configuración del cortafuegos con:
sudo ufw status
Salida:
Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Paso 7:Conéctese a MongoDB
Ahora que instalamos y configuramos MongoDB, debemos mencionar algunas formas diferentes de cómo conectarnos a él. Necesitamos asegurarnos de que nuestra configuración de MongoDB funcione antes de intentar acceder al shell de Mongo.
Instancia local de MongoDB en puerto predeterminado
La conexión más básica al shell mongo es simplemente ejecutar el comando mongo sin ningún argumento:
mongo
Instancia local de MongoDB en un puerto no predeterminado
Si queremos conectarnos al shell de Mongo en un puerto específico, podemos usar:
mongo --port port_number
Simplemente reemplace el número_de_puerto con su número de puerto real.
Instancia de MongoDB en un host remoto
Si necesitamos conectarnos a una máquina host remota con la instancia de MongoDB, podemos usar las siguientes formas:
Podemos especificar una cadena de conexión.
mongo mongodb://your_domain_name.com:port_number
Podemos usar la opción de línea de comandos –host
mongo --host your_domain_name.com:port_number
o podemos usar –host
mongo --host your_domain_name.com --port port_number
Instancia de MongoDB con autenticación
Usaremos estos ejemplos para mostrarle cómo conectarse a una instancia de MongoDB que requiere autenticación.
Podemos definir el nombre de usuario, la base de datos de autenticación y el número de puerto en nuestra cadena de conexión. Además, podemos definir la contraseña (que es opcional) en nuestra cadena de conexión. Si la contraseña no está definida en nuestra cadena de conexión, el shell solicitará la contraseña.
mongo --host mongodb://user@your_domain_name.com:port_number/?authSource=admin
Podemos usar las opciones de línea de comandos –username
mongo --username user --password --authenticationDatabase admin --host your_domain_name.com --port port_number
Conéctese a un conjunto de réplicas de MongoDB
Podemos especificar el nombre del conjunto de réplicas y los miembros en la cadena de conexión.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA
Si está utilizando el formato de conexión de lista de semillas de DNS, puede especificar la cadena de conexión:
mongo "mongodb+srv://server.your_domain_name.com/"
Podemos especificar el nombre del conjunto de réplicas y los miembros de –host
mongo --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Conexión TLS/SSL
Podemos especificar la opción ssl=true en la cadena de conexión.
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA&ssl=true
o podemos especificar –ssl en la línea de comando y usar el ejemplo anterior sobre cómo conectarse al conjunto de réplicas llamado replA:
mongo --ssl --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
Si desea utilizar los comandos anteriores, no olvide reemplazar los valores como your_domain_name.com, host_name, user y replA en los comandos con los valores reales.
Paso 8:Desinstalar MongoDB
Si por alguna razón no le gusta MongoDB y necesita eliminarlo de su sistema, puede seguir estos comandos:
sudo service mongod stop sudo apt purge mongodb-org* sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
En este artículo, le mostramos cómo instalar MongoDB, personalizar el firewall, crear un usuario administrador, habilitar el acceso remoto, conectarse a MongoDB y cómo desinstalar y eliminar MongoDB. Ahora puede usar este conocimiento y puede comenzar a construir sus proyectos en esta maravillosa aplicación.
Por supuesto, si usted es uno de nuestros clientes de Ubuntu Hosting, o si tiene uno de nuestros planes de Managed MongoDB Hosting , no tiene que instalar MongoDB en su Ubuntu 18.04 VPS; simplemente pregúntele a nuestros administradores, siéntese y relájese. Nuestros administradores instalarán MongoDB en Ubuntu 18.04 inmediatamente.
PD . Si te gustó esta publicación sobre cómo instalar MongoDB en un VPS con Ubuntu 18.04 , por favor compártelo con tus amigos en las redes sociales usando los botones de abajo, o simplemente deja un comentario en la sección de comentarios. Gracias.
Nueva versión disponible aquí:Cómo instalar MongoDB en Ubuntu 20.04 y CentOS 8.