LINUX

Cómo instalar MongoDB en Ubuntu (4 pasos)

instalar MongoDB ubuntu

MongoDB es una base de datos NoSQL y de código abierto que ofrece una base de datos empresarial de alto rendimiento, alta disponibilidad y escalamiento automático.

No podemos usar SQL (lenguaje de consulta estructurado) para crear, recuperar, actualizar y eliminar datos (CRUD), y no almacena datos en tablas como MySQL u Oracle. Los datos se almacenan en una estructura de «documento» en formato JSON (en MongoDB llamado BSON) que un registro es un documento.

En este artículo, explicaremos cómo instalar MongoDB, administrar su servicio y configurar la autenticación básica en Ubuntu 18.04.

Importante: Debe tener en cuenta que la empresa MongoDB Inc solo ofrece paquetes para versiones de Ubuntu LTS (soporte a largo plazo) de 64 bits, como 14.04 LTS (confiable), 16.04 LTS (xenial), 18.04 LTS (biónico), etc.

Paso 1) Instalar MongoDB en Ubuntu 18.04

Los repositorios de paquetes oficiales de Ubuntu vienen con la última versión de MongoDB, lo que significa que podemos instalar los paquetes necesarios usando apt-get.

Primero, actualizamos la lista de paquetes para tener la versión más reciente de los listados del repositorio:

$ sudo apt-get update

instalaremos el paquete MongoDB que incluye varios otros paquetes como mongo-tools, mongodb-clients, mongodb-server y mongodb-server-core.

$ sudo apt-get install -y mongodb

Paso 2) Verificación del servicio y la base de datos de MongoDB

El servicio MongoDB se iniciará automáticamente a través de systemd y el proceso escuchará en el puerto. 27017. Puede verificar su estado usando el comando systemctl como se muestra a continuación.

$ sudo systemctl status mongodb
output
 mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-08-06 13:16:20 UTC; 6min ago
     Docs: man:mongod(1)
 Main PID: 14415 (mongod)
    Tasks: 23 (limit: 1112)
   CGroup: /system.slice/mongodb.service
           └─14415 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Aug 06 13:16:20 li34-72 systemd[1]: Started An object/document-oriented database.

También podemos verificar esta instalación conectándonos al servidor de la base de datos y ejecutando un comando de diagnóstico.

$ mongo --eval 'db.runCommand({ connectionStatus: 1 })'
output
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

Como vemos un valor de 1 Para el ok El campo en la respuesta indica que el servidor está funcionando correctamente.

Paso 3) Administrar el servicio MongoDB

La instalación de MongoDB viene como un servicio systemd y se puede administrar fácilmente a través de un estándar systemd comandos como se muestra a continuación.

Para dejar de ejecutar el servicio MongoDB, ejecute el siguiente comando.

$ sudo systemctl stop mongodb

Para iniciar un servicio MongoDB, escriba el siguiente comando.

$ sudo systemctl start mongodb

Para reiniciar un servicio de MongoDB, escriba el siguiente comando.

$ sudo systemctl restart mongodb

Para deshabilitar el servicio MongoDB iniciado automáticamente, escriba el siguiente comando.

$ sudo systemctl disable mongodb

Para habilitar nuevamente el servicio MongoDB, escriba el siguiente comando.

$ sudo systemctl enable mongodb

Paso 4) Ajuste del firewall para acceder a MongoDB de forma remota

Si nos gustaría poder conectarnos a nuestro servidor MongoDB desde Internet, tenemos que permitir las conexiones entrantes en ufw.

De forma predeterminada, MongoDB se ejecuta en el puerto 27017, para permitir el acceso desde cualquier lugar, podemos escribir el siguiente comando.

$ sudo ufw allow 27017

Pero es mejor dar acceso a la ubicación de la dirección IP específica al puerto predeterminado de MongoDB usando el comando a continuación.

$ sudo ufw allow from our_server_IP/32 to any port 27017

De forma predeterminada, UFW está deshabilitado, por lo que debería ver algo como esto:

Output:
Status: inactive

Para permitir ufw escriba el comando a continuación.

$ sudo ufw enable

Para verificar el cambio en la configuración del firewall con ufw escriba el comando a continuación.

$ sudo ufw status
Output:
Status: active

To                         Action      From
--                         ------      ----
27017                      ALLOW       72.14.177.72


Por defecto el puerto 27017 escucha en la dirección local 127.0.0.1 solamente. Para permitir conexiones remotas de MongoDB, necesitamos agregar la dirección IP de nuestro servidor a /etc/mongodb.conf archivo de configuración como se muestra a continuación.

$ sudo nano /etc/mongodb.conf
  bind_ip = 127.0.0.1,our_server_ip
  #port = 27017

Finalmente, reiniciamos MongoDB.

$ sudo systemctl restart mongodb

Paso 4) Cree el usuario raíz y la contraseña de la base de datos MongoDB

Para iniciar el shell mongo, ejecute el siguiente comando.

$ sudo mongo

Podemos listar todas las bases de datos disponibles con el siguiente comando.

> show dbs
output:
admin   0.000GB
config  0.000GB
local   0.000GB

Necesitamos crear un administrador de usuario como usuario root en MySQL / MariaDB en el admin database. Este usuario puede administrar usuarios y roles, como crear usuarios, otorgar o revocar roles de usuarios y crear o modificar roles de aduana.

Primero cambie al admin base de datos, luego cree el usuario raíz usando los siguientes comandos.

  > use admin
  > db.createUser({user:"root", pwd:"pass123", roles:[{role:"root", db:"admin"}]})
  output:
  Successfully added user: {
          "user" : "root",
          "roles" : [
                  {
                          "role" : "root",
                          "db" : "admin"
                  }
          ]
  }

Ahora salga del shell mongo escribiendo Ctrl + c para habilitar la autenticación.

Necesitamos habilitar la autenticación de usuarios editando /lib/systemd/system/mongod.service archivo, primero abra el archivo para editarlo.

$ sudo nano /lib/systemd/system/mongodb.service

Bajo la [Service] config, busque el parámetro ExecStart.

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Y cámbielo a lo siguiente:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
  /lib/systemd/system/mongodb.service
  ............
  [Service]
  User=mongodb
  Group=mongodb
  RuntimeDirectory=mongodb
  RuntimeDirectoryMode=0755
  EnvironmentFile=-/etc/default/mongodb
  Environment=CONF=/etc/mongodb.conf
  Environment=SOCKETPATH=/run/mongodb
  ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
  LimitFSIZE=infinity
  LimitCPU=infinity
  LimitAS=infinity
  LimitNOFILE=64000
  LimitNPROC=64000
  .............

Guarde el archivo y salga escribiendo Ctrl + x.

Después de realizar cambios en el archivo de configuración, ejecute systemctl daemon-reload para recargar unidades y reiniciar el servicio MongoDB y verificar su estado de la siguiente manera.

  $ sudo systemctl daemon-reload
  $ sudo systemctl restart mongodb
  $ sudo systemctl status mongodb
  output:
  ● mongodb.service - An object/document-oriented database
     Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2018-08-06 16:08:03 UTC; 20s ago
       Docs: man:mongod(1)
   Main PID: 15194 (mongod)
      Tasks: 23 (limit: 1112)
     CGroup: /system.slice/mongodb.service
             └─15194 /usr/bin/mongod --auth --unixSocketPrefix=/run/mongodb --config /etc/mongodb.con

  Aug 06 16:08:03 li34-72 systemd[1]: Stopped An object/document-oriented database.
  Aug 06 16:08:03 li34-72 systemd[1]: Started An object/document-oriented database.

Ahora, cuando intentamos conectarnos a mongodb, debemos autenticarnos como usuario de MongoDB.

$ sudo mongo -u "root" -p --authenticationDatabase "admin"

Leer también:

Gracias por leer el artículo y deje sus comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar