Introducción
MySQL es el sistema de administración de bases de datos relacionales de código abierto más popular.
La última versión del servidor de base de datos MySQL, la versión 8.0, está disponible para su instalación desde los repositorios predeterminados de CentOS 8.
MySQL 8.0 introdujo muchas características nuevas y cambios que hicieron que algunas aplicaciones fueran incompatibles con esta versión. Antes de elegir la versión de MySQL a instalar, consulte la documentación de la aplicación que pretende distribuir en el servidor CentOS.
CentOS 8 también proporciona MariaDB 10.3, que es un "reemplazo directo" para MySQL 5.7, con algunas limitaciones. Si la aplicación no es compatible con MySQL 8.0, instale MariaDB 10.3.
En este tutorial, le mostraremos cómo instalar y proteger MySQL 8.0 en sistemas CentOS 8.
Si desea instalar MySQL en un servidor remoto, siga leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instale MySQL 8.0 en CentOS 8
Instale el servidor MySQL 8.0 usando el administrador de paquetes CentOS como root o usuario con privilegios de sudo:
sudo dnf install @mysql
El @mysql
instala MySQL y todas las dependencias.
Una vez que se complete la instalación, inicie el servicio MySQL y habilítelo para que se inicie automáticamente al iniciar ejecutando el siguiente comando:
sudo systemctl enable --now mysqld
Para comprobar si el servidor MySQL se está ejecutando, escriba:
sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-01-18 15:21:52 CET; 10min ago
Process: 4498 ExecStopPost=/usr/libexec/mysql-wait-stop (code=exited, status=0/SUCCESS)
Process: 4633 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 4550 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
Process: 4526 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 4587 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 12251)
Memory: 385.4M
CGroup: /system.slice/mysqld.service
└─4587 /usr/libexec/mysqld --basedir=/usr
Protección MySQL
Ejecute el mysql_secure_installation
que realiza varias operaciones relacionadas con la seguridad y establece la contraseña raíz de MySQL:
sudo mysql_secure_installation
Se le pedirá que configure VALIDATE PASSWORD PLUGIN
, que se utiliza para probar la solidez de las contraseñas de los usuarios de MySQL y mejorar la seguridad. Hay tres niveles de criterios de validación de contraseñas: bajo, medio y fuerte. Presione ENTER
si no desea configurar el complemento de validación de contraseña.
En el siguiente mensaje, se le pedirá que establezca una contraseña para el usuario root de MySQL. Una vez hecho esto, el script también le pedirá que elimine al usuario anónimo, restrinja el acceso del usuario root a la computadora local y elimine la base de datos de prueba. Debe responder "S" (sí) a todas las preguntas.
Para interactuar con el servidor MySQL desde la línea de comandos, use la utilidad de cliente MySQL, instalada como dependencia. Pruebe el acceso de root escribiendo:
mysql -u root -p
Ingrese la contraseña de root cuando se le solicite y se le presentará el shell MySQL como se muestra a continuación:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.17 Source distribution
¡Eso es todo! Ha instalado y protegido MySQL 8.0 en su servidor CentOS y está listo para usarlo.
Método de autentificación
El servidor MySQL 8.0 incluido en los repositorios de CentOS 8 está configurado para usar el antiguo mysql_native_password
autenticación mysql_native_password ya que algunas herramientas cliente y bibliotecas en CentOS 8 no son compatibles con el caching_sha2_password
, que está configurado como predeterminado en la versión ascendente de MySQL 8.0.
el mysql_native_password
debería estar bien para la mayoría de las configuraciones. Sin embargo, si desea cambiar el caching_sha2_password
autenticación predeterminado a caching_sha2_password, que es más rápido y ofrece una mejor seguridad, abra el siguiente archivo de configuración:
sudo vim /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
Cambie el caching_sha2_password
default_authentication_plugin
a caching_sha2_password:
[mysqld]
default_authentication_plugin=caching_sha2_password
Cierre y guarde el archivo y reinicie el servidor MySQL para que los cambios surtan efecto:
sudo systemctl restart mysqld
Conclusión
CentOS 8 se distribuye con MySQL 8.0. Hemos visto cómo instalar MySQL en CentOS 8 Linux.
Ahora que su servidor MySQL está en funcionamiento, puede conectarse al shell MySQL y comenzar a crear nuevas bases de datos y usuarios.