Introducción
MySQL es un sistema de administración de bases de datos relacionales de código abierto, es decir, un software que le permite crear y administrar bases de datos organizadas en tablas, con relaciones entre ellas, para almacenar y acceder a los datos de manera eficiente. Es una de las bases de datos relacionales más populares del mundo y fue desarrollada originalmente por MySQL AB, una empresa sueca que luego fue adquirida por Sun Microsystems y luego por Oracle Corporation.
MySQL utiliza el lenguaje de consulta estructurado (SQL) para consultar y manipular datos dentro de las bases de datos. Se caracteriza por su facilidad de uso, su escalabilidad y su robustez. Además, al ser de código abierto, está disponible gratuitamente y puede usarse, modificarse y distribuirse sin restricciones.
MySQL se utiliza en muchas aplicaciones web, incluidos CMS (Sistema de gestión de contenido), foros, blogs y aplicaciones de comercio electrónico. Debido a su uso generalizado y a la gran comunidad de desarrolladores que lo respaldan, puede encontrar muchas herramientas y bibliotecas que lo ayudarán a integrarse con otros software y lenguajes de programación.
Configurar la contraseña
A partir de julio de 2022, se producirá un error al ejecutar el script mysql_secure_installation
sin configuración adicional. La razón es que este script intentará establecer una contraseña para la cuenta MySQL raíz de la instalación pero, de forma predeterminada en las instalaciones de Ubuntu, esta cuenta no está configurada para conectarse con una contraseña.
Antes de julio de 2022, este script fallaba silenciosamente después de intentar establecer la contraseña de la cuenta raíz y continuar con el resto de las indicaciones. Sin embargo, a partir de este escrito, el script devolverá el siguiente error después de ingresar y confirmar una contraseña:
... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
New password:
Esto llevará la secuencia de comandos a un bucle recursivo del que solo puede salir cerrando la ventana del terminal.
Debido a que el script mysql_secure_installation
realiza otras acciones para ayudar a mantener segura su instalación de MySQL, aún se recomienda que lo ejecute antes de comenzar a usar MySQL para administrar sus datos. Sin embargo, para evitar entrar en este ciclo recursivo, primero deberá ajustar cómo se autentica su usuario raíz de MySQL.
Primero, abra el indicador de MySQL:
sudo mysql
Luego ejecute el siguiente comando ALTER USER
para cambiar el método de autenticación del usuario raíz a uno que use una contraseña. El siguiente ejemplo cambia el método de autenticación a mysql_native_password
:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Después de realizar este cambio, salga al indicador de MySQL:
exit
Después de eso, puede ejecutar el script mysql_secure_installation
sin ningún problema.
Cómo restaurar el método de autenticación predeterminado sin contraseña
Una vez que se completa el script de seguridad, puede volver a abrir MySQL y cambiar el método de autenticación auth_socket
del usuario raíz al valor predeterminado,. Para autenticarse como usuario raíz de MySQL usando una contraseña, ejecute este comando:
mysql -u root -p
Luego, vuelva a usar el método de autenticación predeterminado con este comando:
ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Esto significa que puede volver a conectarse a MySQL como usuario raíz usando el comando sudo mysql
.
Ejecute el script de seguridad con sudo
:
sudo mysql_secure_installation
Esto lo llevará a través de una serie de indicaciones donde puede realizar algunos cambios en las opciones de seguridad de su instalación de MySQL. El primer mensaje le preguntará si desea configurar el complemento Validar contraseña, que se puede usar para probar la seguridad de la contraseña de los nuevos usuarios de MySQL antes de considerarlos válidos.
Si decide configurar el complemento Validar contraseña, a cualquier usuario de MySQL que cree que se autentique con una contraseña se le pedirá que tenga una contraseña que cumpla con la política seleccionada. El nivel de política más fuerte, que puede seleccionar ingresando 2
, requerirá que las contraseñas tengan al menos ocho caracteres e incluyan una combinación de mayúsculas, minúsculas, números y caracteres especiales:
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 si elige configurar el complemento Validar contraseña, el siguiente mensaje será establecer una contraseña para el usuario root de MySQL. Ingrese y luego confirme una contraseña segura de su elección:
Please set the password for root here.
New password:
Re-enter new password:
Tenga en cuenta que incluso si ha establecido una contraseña para el usuario raíz de MySQL, este usuario no está configurado actualmente para autenticarse con una contraseña cuando se conecta al shell de MySQL.
Si ha utilizado el complemento Validar contraseña, recibirá comentarios sobre la seguridad de su nueva contraseña. Luego, el script le preguntará si desea continuar con la contraseña que acaba de ingresar o si desea ingresar una nueva. Suponiendo que esté satisfecho con la seguridad de la contraseña que acaba de ingresar, ingrese Y
para continuar con el script:
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 presionar Y
y luego ENTER
para aceptar los valores predeterminados para todas las preguntas posteriores. Esto eliminará algunos usuarios anónimos y la base de datos de prueba, deshabilitará los inicios de sesión raíz remotos y cargará estas nuevas reglas para que MySQL respete los cambios de inmediato.
Una vez que se complete el script, su instalación de MySQL estará protegida. Ahora puede pasar a crear un usuario de base de datos dedicado con el cliente MySQL.
Conclusión
En este tutorial hemos visto cómo configurar la contraseña en MySQL.