GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y asegurar MongoDB 4 en CentOS 8

MongoDB es un sistema de base de datos NoSQL multiplataforma escrito en C++. MongoDB es diferente de las bases de datos SQL basadas en tablas tradicionales como MySQL y PostgreSQL y está especialmente diseñado para el almacenamiento de datos de gran volumen. MongoDB usa documentos similares a JSON con esquemas dinámicos y no requiere un esquema predefinido antes de agregar datos a una base de datos. MongoDB es gratuito, de código abierto y viene con un amplio conjunto de características que incluyen almacenamiento, replicación de datos, consultas Ad-hoc, equilibrio de carga y muchas más.

En este tutorial, explicaremos cómo instalar y asegurar MongoDB en CentOS 8.

Requisitos

  • Un nuevo CentOS 8 VPS en la plataforma en la nube de Atlantic.net.
  • Una contraseña raíz configurada en su servidor.

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:agregue el repositorio de MongoDB

Puedes crearlo con el siguiente comando:

nano /etc/yum.repos.d/mongodb-org.repo

Agregue las siguientes líneas:

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

Guarde y cierre el archivo cuando haya terminado. A continuación, puede proceder a instalar MongoDB en su sistema.

Paso 3:instalar MongoDB

Ahora, puede instalar MongoDB simplemente ejecutando el siguiente comando:

dnf install mongodb-org -y

Una vez que se haya completado la instalación, inicie el servicio MongoDB y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start mongod
systemctl enable mongod

Ahora puede verificar el estado del servicio MongoDB usando el siguiente comando:

systemctl status mongod

Debería ver el siguiente resultado:

● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-04-10 10:58:18 EDT; 7s ago
     Docs: https://docs.mongodb.org/manual
  Process: 2904 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 2902 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 2899 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 2897 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 2906 (mongod)
   Memory: 77.0M
   CGroup: /system.slice/mongod.service
           └─2906 /usr/bin/mongod -f /etc/mongod.conf

Apr 10 10:58:17 centos8 systemd[1]: Starting MongoDB Database Server...
Apr 10 10:58:17 centos8 mongod[2904]: about to fork child process, waiting until server is ready for connections.
Apr 10 10:58:17 centos8 mongod[2904]: forked process: 2906
Apr 10 10:58:18 centos8 mongod[2904]: child process started successfully, parent exiting
Apr 10 10:58:18 centos8 systemd[1]: Started MongoDB Database Server.

Ahora, MongoDB se está ejecutando y escuchando en el puerto 27017. Puede verificarlo con el siguiente comando:

netstat -pnltu | grep 27017

Deberías obtener el siguiente resultado:

tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      2906/mongod

También puede acceder al shell de MongoDB con el siguiente comando:

mongo

Deberías obtener el siguiente resultado:

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b0f7656f-f939-4f50-87d2-01cbeca0849a") }
MongoDB server version: 4.2.5
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
            http://docs.mongodb.org/
Questions? Try the support group
            http://groups.google.com/group/mongodb-user
Server has startup warnings:
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten]
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-04-10T10:58:18.521-0400 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-04-10T10:58:18.522-0400 I  CONTROL  [initandlisten]
---
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()
---

Puede salir del shell de MongoDB con el siguiente comando:

>exit

Paso 4:habilite la autenticación de MongoDB

nano /etc/mongod.conf

Agregue la siguiente línea al final del archivo:

security:
  authorization: enabled

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio MongoDB para aplicar los cambios:

systemctl restart mongod

Paso 5:cree un usuario administrador de MongoDB

A continuación, deberá crear un usuario administrativo con todos los privilegios para realizar tareas administrativas.

Primero, acceda al shell de MongoDB con el siguiente comando:

mongo

Deberías obtener el siguiente resultado:

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("09e0e028-cd26-4f9d-9270-52b938925f99") }
MongoDB server version: 4.2.5

A continuación, cambie la base de datos a administrador con el siguiente comando:

> use admin

A continuación, cree un usuario administrador de MongoDB llamado myadmin con el siguiente comando:

> db.createUser( { user: "myadmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

Una vez que se haya creado el usuario, debería obtener el siguiente resultado:

Successfully added user: {
            "user" : "myadmin",
            "roles" : [
                        {
                                    "role" : "userAdminAnyDatabase",
                                    "db" : "admin"
                        }
            ]
}

A continuación, salga del shell de MongoDB con el siguiente comando:

>exit

Paso 6:verificar la autenticación de MongoDB

En este punto, MongoDB está configurado con autenticación. Ahora se le pedirá que proporcione un nombre de usuario y una contraseña antes de interactuar con MongoDB.

A continuación, conecte MongoDB sin autenticación:

mongo

Deberías obtener el siguiente resultado:

MongoDB shell version v4.2.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("fecf1846-13fd-4959-91da-5cf323781e13") }
MongoDB server version: 4.2.5

Ahora, ejecute el siguiente comando para enumerar los usuarios de MongoDB:

> show users

Debería recibir el siguiente error:

2020-04-10T11:08:04.598-0400 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :
[email protected]/mongo/shell/utils.js:25:13
[email protected]/mongo/shell/db.js:1638:15
[email protected]/mongo/shell/utils.js:883:9
[email protected]/mongo/shell/utils.js:790:15
@(shellhelp2):1:1

Esto demuestra que no puede enumerar los usuarios sin autenticarse.

Ahora, salga de MongoDB con el siguiente comando:

>exit

Paso 7:acceda a MongoDB con el usuario administrativo

Ahora, conectémonos a MongoDB con el usuario administrativo:

mongo -u myadmin -p --authenticationDatabase admin

Se le pedirá que proporcione su contraseña de administrador como se muestra a continuación:

MongoDB shell version v4.2.5
Enter password:

Proporcione su contraseña de administrador y presione Enter . Deberías obtener el siguiente resultado:

connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a39f723c-f1b5-4c93-9e67-ff82379dfb62") }
MongoDB server version: 4.2.5

A continuación, cambie la base de datos a admin y enumere los usuarios con el siguiente comando:

> use admin
> show users

Deberías obtener el siguiente resultado:

{
            "_id" : "admin.myadmin",
            "userId" : UUID("bcd920c1-63fd-4b82-a8a6-eb6515d51a34"),
            "user" : "myadmin",
            "db" : "admin",
            "roles" : [
                        {
                                    "role" : "userAdminAnyDatabase",
                                    "db" : "admin"
                        }
            ],
            "mechanisms" : [
                        "SCRAM-SHA-1",
                        "SCRAM-SHA-256"
            ]
}

Ahora, salga del shell de MongoDB con el siguiente resultado:

> exit

Conclusión

En la guía anterior, aprendimos cómo instalar MongoDB en CentOS 8. También mostramos cómo habilitar la autenticación de MongoDB y crear un usuario administrativo. Su MongoDB en su Atlantic.Net VPS ahora está protegido con nombre de usuario y contraseña. Si no tiene un VPS de Atlantic.Net, ¡comience hoy con el alojamiento de VPS para instalar MongoDB!


Linux
  1. Cómo instalar y proteger MongoDB en Debian 11

  2. Cómo instalar MongoDB en CentOS 8 / RHEL 8

  3. Cómo instalar MongoDB 4.4/4.2 en CentOS 7/RHEL 7

  4. Cómo instalar MongoDB en Ubuntu 20.04 y CentOS 8

  5. Cómo instalar FlintCMS en CentOS 7

Cómo instalar MongoDB en CentOS 6

Cómo instalar MongoDB en CentOS 7

Cómo instalar y configurar GlusterFS en CentOS 7/CentOS 8

Cómo instalar y asegurar phpMyAdmin en CentOS 8

¿Cómo instalar MongoDB versión 4.0 en Centos 7?

¿Cómo instalar Mongodb en CentOS?