Recuperar contraseña de root en Mysql

Hace un par de días, me tocó tener que configurar varios servicios de un servidor recién instalado (por otra persona). Como puede darse en estos casos, a veces la documentación que te facilitan, no coincide con la realidad.

En mi caso, no había forma de acceder a Mysql. El usuario root no respondía en lo más mínimo. Es por eso que recurrí a mi memoria y a mis apuntes, y me dispuse a cambiar la contraseña del usuario root.

A continuación, los pasos para cuando nos topemos con la misma situación (el ejemplo está basado en su aplicación sobre Linux).

Detenemos el servicio de Mysql.

/etc/init.d/mysql stop

Luego vamos a iniciarlo en modo seguro, saltándonos la seguridad de usuario:

mysqld_safe --skip-grant-tables &

Ahora si, invocamos a Mysql.

mysql

Nos paramos sobre la base de datos de Mysql.

USE mysql;

Una vez que se nos confirme el cambio, ingresamos la siguiente consulta.

UPDATE user SET password=PASSWORD('contrase?a') WHERE user = 'root';

Y para finalizar.

FLUSH PRIVILEGES;

Ahora si, ya tenemos al usuario root con la contraseña que querramos.

Por supuesto, usamos el caso del usuario root por presuponer que no hay forma de acceder y queremos retomar el control del usuario con mayor privilegio dentro del Mysql, pero este procedimiento podría aplicarse para cualquier usuario. Esta forma de ingresar en el motor sirve, incluso, para ejecutar cualquier acción.