Tutorial

Cómo instalar MySQL en CentOS 8

MySQLDatabasesCentOS 8

Introducción

MySQL es un sistema de administración de bases de datos de código abierto, que comúnmente se instala como parte de la popular pila LEMP (Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl). Implementa el modelo relacional y el lenguaje de consulta estructurado (SQL) para administrar y consultar datos.

En este tutorial se ofrece información sobre cómo instalar la versión 8 de MySQL en un servidor de CentOS 8.

Requisitos previos

Para cumplir este tutorial, necesitará un servidor con CentOS 8. Este servidor debe tener un usuario no root con privilegios administrativos y un firewall configurado con firewalld. Para configurarlo, consulte nuestra Guía de configuración inicial de servidores para CentOS 8.

Paso 1: Instalar MySQL

En CentOS 8, la versión 8 de MySQL está disponible en los repositorios predeterminados.

Ejecute el siguiente comando para instalar el paquete mysql-server y algunas de sus dependencias:

  • sudo dnf install mysql-server

Cuando se le solicite, presione Y y luego INTRO para confirmar que desea continuar:

Output
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y

Con los pasos anteriores, MySQL se habrá instalado en su servidor. Sin embargo, todavía no funciona. El paquete que acaba de instalar configura MySQL para que se ejecute como un servicio systemd denominado mysqld.service. Para usar MySQL, deberá iniciarlo con el comando systemctl:

  • sudo systemctl start mysqld.service

Para verificar que el servicio funcione correctamente, ejecute el siguiente comando. Tenga en cuenta que para muchos comandos systemctl (incluidos start y, como se muestra aquí, status) no necesita incluir .service después del nombre del servicio:

  • sudo systemctl status mysqld

Si MySQL se inició correctamente, en el resultado se mostrará que el servicio MySQL está activo:

Output
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago Main PID: 15723 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 5056) Memory: 474.2M CGroup: /system.slice/mysqld.service └─15723 /usr/libexec/mysqld --basedir=/usr Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server... Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

A continuación, establezca que MySQL se inicie cada vez que se cargue el servidor mediante el siguiente comando:

  • sudo systemctl enable mysqld

Nota: Si desea cambiar este comportamiento y deshabilitar MySQL para que no se inicie en el arranque, ejecute lo siguiente:

  • sudo systemctl disable mysqld

MySQL ahora quedará instalado, activo y habilitado en su servidor. A continuación, repasaremos la manera de reforzar la seguridad de la base de datos por medio de una secuencia de comandos shell previamente instalada en su versión de MySQL.

Paso 2: Proteger MySQL

MySQL incluye una secuencia de comandos de seguridad que le permite cambiar algunas opciones de configuración predeterminadas para mejorar la seguridad de MySQL.

Para usar la secuencia de comandos de seguridad, ejecute el siguiente comando:

  • sudo mysql_secure_installation

Con esto, accederá a una serie de indicaciones en las que se le solicitará aplicar ciertos cambios a las opciones de seguridad de la instalación de MySQL. En la primera solicitud se le preguntará si desea configurar el complemento de validación de contraseña, que puede usar para probar la seguridad de la contraseña de MySQL.

Si decide configurar el complemento para validar la contraseña, la secuencia de comandos le solicitará elegir un nivel de validación de contraseña. Para el nivel más alto, que se selecciona ingresando 2, se solicitará que la contraseña tenga al menos ocho caracteres e incluya una combinación de mayúsculas, minúsculas y numéros y caracteres especiales:

Output
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Independientemente de que opte por configurar el complemento para validar la contraseña, la siguiente solicitud tendrá que ver con establecer una contraseña para el usuario root de MySQL. Introduzca y luego confirme una contraseña segura que elija:

Output
Please set the password for root here. New password: Re-enter new password:

Si utilizó el complemento para validar la contraseña, recibirá un comentario acerca de la seguridad de su contraseña nueva. A continuación, la secuencia de comandos le consultará si desea continuar con la contraseña que introdujo o si desea introducir una nueva. Suponiendo que esté conforme con la seguridad de la contraseña que acaba de introducir, ingrese Y para continuar con la secuencia de comandos:

Output
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Desde allí, puede pulsar Y y luego INTRO para aceptar los valores predeterminados de todas las preguntas siguientes. Con esto, se eliminarán algunos usuarios anónimos y la base de datos de prueba, se deshabilitarán las credenciales de inicio de sesión remoto de root y se cargarán estas nuevas reglas para que MySQL aplique de inmediato los cambios que realizó.

Con los pasos anteriores, instaló y protegió MySQL en el servidor de CentOS 8. Como paso final, probaremos si podemos acceder a la base de datos y si funciona según lo previsto.

Paso 3: Probar MySQL

Puede verificar su instalación y obtener información al respecto si establece conexión mediante la herramienta mysqladmin, un cliente que le permite ejecutar comandos administrativos. Utilice el siguiente comando para establecer la conexión con MySQL como root (-u root), solicitar una contraseña (-p) y obtener la versión de la instalación:

  • mysqladmin -u root -p version

Verá un resultado similar a este:

Output
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      8.0.17
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/lib/mysql/mysql.sock
Uptime:         2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

Esto indica que su instalación se realizó correctamente.

Si desea establecer conexión con MySQL y comenzar a añadir datos allí, ejecute lo siguiente:

  • mysql -u root -p

Al igual que el comando mysqladmin anterior, este incluye la opción -u, que le permite especificar el usuario con el cual desea establecer la conexión (root en este caso) y la opción -p, el cual indica al comando que solicite la contraseña de usuario que configuró en el paso anterior.

Después de introducir la contraseña de usuario de MySQL root, verá el siguiente mensaje de MySQL:

Desde allí, puede comenzar a usar la instalación de MySQL para crear y cargar bases de datos y comenzar a ejecutar consultas.

Conclusión

Si realizó los pasos de este tutorial, habrá instalado y protegido MySQL en un servidor de CentOS 8. Desde aquí, puede instalar Nginx y PHP para contar con una pila de LEMP plenamente operativa en el servidor.

Para obtener más información sobre cómo utilizar MySQL, le sugerimos consultar la documentación oficial.

Creative Commons License