Recuperar la contraseña del root en mysql

Alguna vez me he encontrado con algún servidor de base de datos, del que no tenía la contraseña de root, y siempre termino buscando por internet. Aprovecho esta entrada para comentaros una forma de solucionarlo. El síntoma es que al ejecutar el comando mysql como root, nos encontramos con el siguiente error:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  1. Lo primero será parar el servicio de mysql
    /etc/init.d/mysqld stop
  2. Ahora arrancaremos el servicios, saltándonos la tabla de privilegios, mediante:
    /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
  3. Ahora desde otra consola, nos conectaremos a mysql y podremos cambiar la clave del root.
    mysql> use mysql;
    mysql> update user set password=password('secreto') where user='root';
    mysql> exit;
  4. Reiniciar el servicio, y ya podremos conectar.
    /etc/init.d/mysqld restart 
La foto la he sacado del album de Travelling Pooh en flickr

No hay comentarios: