martes, 17 de marzo de 2020

Recuperar contraseña root en MySQL - Linux

Este método funciona solo si tienes permisos de administrador en el sistema.

Ya que MySQL guarda en una tabla la información de los usuarios, es posible actualizar y así recuperar las contraseñas de las cuentas de usuarios que hayamos olvidado, entre ellas la del super administrador (root).

Para el ejemplo supondremos que los comandos se ejecutan sobre una distro de Ubuntu 18.04, pero el procedimiento es el mismo en otras versiones, solo basta con utilizar los comandos equivalentes.


Detenemos el servicio:
$ sudo systemctl stop mysql.service

Iniciamos el servicio en modo seguro sin contraseña:
$ sudo mysqld_safe --skip-grant-tables &

Una vez iniciado el servicio, nos logueamos como root sin contraseña:
$ sudo mysql -u root

Para versiones de MySQL 5.7.5 y anteriores:
mysql> use mysql;
mysql> update user set password=PASSWORD("NUEVACONTRASEÑA") where User='root';
mysql> flush privileges;
mysql> quit

Para versiones de MySQL 5.7.6 y superiores:
mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit

Detenemos nuevamente el servicio y lo iniciamos:
$ sudo systemctl stop mysql.service
$ sudo systemctl start mysql.service

Ya podemos loguearnos con la contraseña asignada:
$ sudo mysql -u root -p

No hay comentarios:

Publicar un comentario