MySQL Recuperar la contraseña de root en 5 pasos

Hoy veremos como se puede recuperar y cambiar la contraseña de root del servidor de bases de datos MySQL. Este es un rapido procedimiento el cual funciona en Linux con los siguientes cinco pasos:

MySQL: Pasos para resetear la contraseña de root

1: Detener el proceso del servidor

Antes de iniciar el proceso de recuperacion de la clave de root es necesario bajar todos los servicios de la base de datos:

[email protected]:~# /etc/init.d/mysql stop
* Stopping MySQL database server mysqld	[ OK ]
[email protected]:~#

2: Iniciar el servicio/demonio (mysqld) sin contraseña

Cuando vamos a reiniciar el motor de base de datos utilizamos la opcion –skip-grant-tables asi no nos pedira la contraseña.

[email protected]:~# mysqld_safe --skip-grant-tables &
[1] 10702
[email protected]:~# nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[10741]: started

3: Conectar al servidor MySQL como el usuario root

Ahora que ya hemos realizamo el paso 2, podemos conectarnos al servidor con el usuario root y no tendremos que ingresar la contraseña. Esto es un paso temporal necesario para cambiar la contraseña anterior de root.

[email protected]:~# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql>

4: Configure la nueva contraseña de root

En este paso ya es posible actualizar la contraseña de root por una nueva:

mysql> use mysql;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=PASSWORD("321") where User='root';
Query OK, 3 rows affected (0.03 sec)
Rows matched: 3  Changed: 3  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

5: Salir y reiniciar el servidor

Ya que hemos cambiado la contraseña, tan solo es necesario salir de la interfaz para utilizar la nueva contraseña de administrador.

mysql> quit
Bye
[email protected]:~# /etc/init.d/mysql stop
* Stopping MySQL database server mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[11414]: ended
[ OK ]
[1]+  Done                    mysqld_safe --skip-grant-tables

6: Reinicio de MySQL

Y eso es todo. En este ultimo paso tan solo nos queda reiniciar el proceso de la base de datos en Linux y nuestra nueva contraseña estara cambiada.

[email protected]:~# /etc/init.d/mysql start
* Starting MySQL database server mysqld	[ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.

[email protected]:~# mysql -u root -p

36 comments

  1. Maravilloso!
    No tenia muchas esperanzas de que me fuese a funcionar, pero lo ha hecho!
    Muchas Gracias shurmano!;D

  2. Hola, yo tengo el mismo problema pero cuando ingreso el comando mysqld_safe –skip-grant-tables & se queda pensando, y no hay resultado alguno, cuánto tiempo tengo q esperar?????

  3. Excelente!…. muy bueno…. yo cheque otros tutoriales y no me funcionaron y este resolvio el conflicto… muchas gracias por compartir el dato, solo tengo una curiosidad cuando inicio y detengo servicios no aperece * Starting MySQL database server mysqld [ OK ]
    m aparece una gran leyenda… no se si es por la version o no se… pero nunca habia aparecido antes pero si funciona.

  4. Gracias !! me salvaste, tenia que terminar un trabajo de la universidad y no podia avanzar sin la contraseña del mysql, wow soy el primero en comentar desde hace mas de un año XD. Por cierto muy bien explicado, te felicito.

Deja tus preguntas o comentario