nov 14, 2009

Enviado por en GNU/Linux, InfoSec

Recuperar contraseña root de MySQL

logo_mysql_sun

Aveces ya sea por descuido nuestro, o alguna otra razón perdemos la contraseña de acceso para administrar MySQL en esta entrada intentare mostrarles como recuperar esta contraseña en Linux con una cuenta con acceso a root, o equivalentes (sudo).


Primer Metodo
Bien, lo primero que tenemos que hacer matar el proceso de MySQL para esto hacemos lo siguiente:

#pkill mysql
#pkill mysql-safe

Claro desde una cuenta con sudo, o con la cuenta de Root.

Ahora vamos a crear un pequeño archivo llamado “resetearmysql”, en la carpeta que gusten, en este caso en /root/, y añadiremos las siguientes lineas:

UPDATE mysql.user SET Password=PASSWORD('nuevapass') WHERE User=’root’;
FLUSH PRIVILEGES;

Aqui cambiamos el campo nuevapass por la nueva contraseña que queramos y guardamos el archivo.

El ultimo paso es reiniciar el servidor en modo seguro. pero incluir el archivo que acabamos de hacer para esto usaremos el parametro –init-file:

#mysqld_safe –init-file=/root/resetearmysql &

Ahora que la contraseña fue cambiada, podremos reiniciar el servidor y borrar nuestro archivo de texto.

#rm /root/resetearmysql
#pkill mysql-safe
#/etc/init.d/mysql start

Segundo Método

Esta segunda alternativa también necesita acceso a la maquina y permisos de root, al igual que el anterior empezaremos apagando los servidores:

#pkill mysql
#pkill mysql-safe

Acto seguido procederemos a reiniciar mysql en modo seguro con las siguientes opciones:

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

Con la opción -skip-grant-tables nos saltamos la comprobación de permisos, y con -skip -networking bloqueamos las conexiones que entren de un lado diferente a localhost.

Ahora iniciamos sesión como root y colocamos una nueva contraseña

#mysql -u root mysql

y colocamos la nueva contraseña

mysql> UPDATE user SET Password=PASSWORD(’newpA$$’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;

Si sucede algún error en este proceso:
Bastara con agregar de nuevo a root:

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@'localhost’ IDENTIFIED BY ‘newpA$$’;
mysql> FLUSH PRIVILEGES;

Finalmente reiniciamos el servidor:

#pkill mysql-safe
#/etc/init.d/mysql start

Ahora bien recuerden que la mejor solución es no perder la contraseña ;) y para mayor seguridad, cambiarla frecuentemente.

Saludos

    Posts Relacionados

    Dejar una respuesta

    Debes ser Alojarse para enviar un comentario.