Como cambiar la contraseña root de MySQL

De vez en cuando se ha dado el caso que llegas a una situación en la que no sabes la contraseña del usuario admin o root de MySQL. Para ello necesitamos mínimamente tener acceso al usuario ‘root’ de Linux y seguir los siguientes pasos:

Detenemos el servicio de MySQL:

# service mysqld stop

Iniciamos en modo abierto:

# mysqld_safe --skip-grant-tables --skip-networking

Nota aclaratoria: La opción –skip-grant-tables hace que el servidor no use el sistema de privilegios. Por lo que da acceso ilimitado a todas las bases de datos a todos los usuarios de la base de datos. Solamente funciona si MySQL fue configurado y compilado con la opción ‘–disable-grant-options’

Finalmente con –skip-networking deja de escuchar (LISTEN) conexiones TCP/IP provenientes de la red, es decir trabajaríamos en local.

Después, accedemos a la consola de mysql y no nos preguntará contraseña ninguna:

# mysql -u root

o bién

# mysql -u admin

 

Usamos la base de datos del sistema MySQL:

mysql> use mysql;

Actualizamos el campo que cambiará la contraseña de ‘root’ o ‘admin’:

mysql> UPDATE user SET password=PASSWORD('nuevo_pass') WHERE user='root';

o bién

 

mysql> UPDATE user SET password=PASSWORD('nuevo_pass') WHERE user='admin';

Query OK, 1 rows affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Salimos de la consola de MySQL y reiniciamos el servidor y ya estaría cambiada la contraseña:

 

mysql> exit

# service mysqld restart

Nota muy importante: Si utilizas el panel de Plesk, recuerda que a partir de la versión 9, la contraseña está encriptada. Por lo que si deseas cambiarla tiene que encriptarla de nuevo utilizando el algoritmo correspondiente.