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.
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.
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.
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:
OutputSecuring 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:
OutputPlease 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:
OutputEstimated 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.
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:
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!