Recuperar contraseña de root en MySQL
A quién no le ha pasado alguna vez que pierde la clave del usuario root
en mysql ?, incluso en sistemas de producción!. El día de hoy veremos qué pasos se deben realizar para restaurar la contraseña del usuario con más privilegios de mysql.
Cómo ocurre esto ?
Personalmente, existen dos casos en los cuáles puedes perder el acceso con root a mysql. El primero, tiene que ver con que sencillamente olvidaste la clave, con lo cual pierdes el acceso. El segundo, está relacionado con algún cambio en la base de datos como por ejemplo cuando cambios el plugin o authentication_string de la tabla de usuarios de mysql.
Pasos para recuperar la contraseña
( 1 ) Lo primero que debes hacer es parar el servicio de mysql. En sistemas basados en Debian GNU\Linux bastaría ejecutar lo siguiente:
service apache2 stop
O bien,
systemctl stop apache2
En MacOS deberás ejecutar:
mysql.server stop
( 2 ) El segundo paso será iniciar el servicio de mysql (mysqld) en modo seguro saltándose las verificaciones de autenticación.
mysqld_safe --skip-grant-tables
( 3 ) Con esto ya podemos ingresar sin necesidad de autenticación solamente ejecutando el siguiente comando:
mysql
( 4 ) Finalmente, deberás ejecutar el siguiente comando para dejar sin contraseña el usuario root.
UPDATE mysql.user SET authentication_string=null WHERE User='root';
( 5 ) En este punto, deberás cerrar la sesión e iniciar con root sin contraseña.
mysql -u root
( 6 ) Y cambiar el password por el deseado.
SET PASSWORD = 'auth_string';
Hasta la próxima!.