miércoles, noviembre 16, 2011

MySQL Recuperar la contraseña de root en 5 pasos - Centos




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:
root@centos:~# service mysqld stop
* Stopping MySQL database server mysqld [ OK ]
root@centos:~#

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.
root@centos:~# mysqld_safe --skip-grant-tables &
[1] 10702
root@centos:~# 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.
root@centos:~# 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
root@centos:~# service mysqld 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.
root@centos:~# service mysqld start
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.

root@centos:~# mysql -u root -p