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 LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Implementa el modelo relacional y utiliza el Structured Query Language (más conocido como SQL) para administrar los datos.

Esta guía de inicio rápido explicará cómo instalar la versión 8 de MySQL en un servidor Ubuntu 20.04.

Requisitos previos

Para este tutorial, necesitará lo siguiente:

Paso 1: Instalar MySQL

Para instalar MySQL, primero, actualice el índice de paquetes de su servidor, si no lo ha hecho recientemente:

  • sudo apt update

A continuación, instale el paquete mysql-server:

  • sudo apt install mysql-server

Paso 2: Configurar MySQL

Ejecute la secuencia de comandos de seguridad incluida en MySQL con sudo:

  • sudo mysql_secure_installation

Esto lo guiará a través de una serie de instrucciones mediante las cuales podrá realizar cambios en las opciones de seguridad de su 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 de validación de contraseñas, la secuencia de comandos le solicitará que seleccione el nivel de validación: 0 es el más débil y 2, el más seguro:

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

El siguiente mensaje le solicitará que ingrese y confirme una contraseña para el root user de MySQL:

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

A continuación, la secuencia de comandos le consultará si desea continuar con la contraseña que introdujo o si desea introducir una nueva. Si está conforme con su contraseña, 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 ENTER para aceptar los valores predeterminados para todas las preguntas siguientes.

Paso 3: Ajustar la autenticación y los privilegios de usuario (opcional)

Para usar una contraseña para conectarse con MySQL como root, deberá cambiar su método de autenticación del complemento de autenticación predeterminado auth_socket a otro, como caching_sha2_password o mysql_native_password. Para hacer esto, abra la consola de MySQL desde su terminal:

  • sudo mysql

Allí, ejecute una instrucción ALTER USER para cambiar el complemento de autenticación que utiliza y establecer una contraseña nueva. Asegúrese de cambiar password por una contraseña segura de su elección, y tenga en cuenta que este comando cambiará la contraseña root que estableció en el Paso 2:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Nota: caching_sha2_password es el complemento de autenticación preferido de MySQL, dado que proporciona un cifrado de contraseña más seguro que el anterior, mysql_native_password, aunque se sigue utilizando ampliamente.

Sin embargo, muchas aplicaciones PHP, como por ejemplo phpMyAdmin, no funcionan de forma fiable con caching_sha2_password. Si planea utilizar esta base de datos con una aplicación PHP, es posible que quiera establecer root para que autentique con mysql_native_password:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

A continuación, ejecute FLUSH PRIVILEGES para indicar al servidor que vuelva a cargar la tabla de permisos y aplique sus nuevos cambios:

  • FLUSH PRIVILEGES;

Compruebe de nuevo los métodos de autenticación empleados por cada uno de sus usuarios para confirmar que root deje de realizarla usando el complemento de auth_socket:

  • SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

Una vez que confirme esto en su propio servidor, podrá cerrar el shell de MySQL:

  • exit

De forma alternativa, puede conectarse con MySQL con un usuario dedicado en lugar de root. Para crear dicho usuario, abra el shell de MySQL de nuevo:

  • sudo mysql

Nota: Si tiene habilitada la autenticación de contraseña para root, como se describe en los párrafos anteriores, deberá ejecutar lo siguiente en su lugar:

  • mysql -u root -p

A partir de ahí, cree un usuario nuevo y asigne una contraseña segura:

  • CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

Luego, conceda a su nuevo usuario los privilegios apropiados. Por ejemplo, con el siguiente comando podría conceder privilegios de usuario a todas las tablas dentro de la base de datos, así como la facultad de añadir, cambiar y eliminar privilegios de usuario:

  • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

Después de esto, puede cerrar el shell de MySQL:

  • exit

Conclusión

Ahora tiene una configuración básica de MySQL instalada en su servidor. Aquí tiene algunos ejemplos de pasos posteriores que puede seguir:

0 Comments

Creative Commons License