¿Cómo recuperar el password de root de MySQL?

Hoy estaba tratando de instalar una app que requiere acceso de MySQL pero no era en mi PC habitual si no en mi pequeñita y todavía práctica Asus EEE. Andá a saber cuando instalé el MySQL para un experimento ahí, no me acordaba qué password de root le había asignado y no funcionaban los que probaba.

Pues bien, hay una solución para los que perdemos el pass más importante de todos, para developers con acceso al server, aquí una de tantas formas de hacerlo que probablemente les funcione.

Post para developers casi exclusivamente! :D



Antes que nada la aclaración obvia, esto no es para amateurs, si no sabés nada de linux, no es tu tema, pero si sabés un poco es una buena ayuda.

Todo esto hay que ejecutarlo como root del sistema para poder tener los permisos suficientes para trabajar con servicios y mysql.

Paso 1: detener el servicio de MySQL

# /etc/init.d/mysql stop

debería decir algo así como:

Stopping MySQL database server: mysqld.

Paso 2: Reiniciar el servidor sin password

# mysqld_safe --skip-grant-tables &

Recuerden agregar el & al final para poder seguir usando esa consola

[1] 3423
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[4567]: started


Esto significa que reinició pero sin las tablas que definen los permisos y passwords como filtro

Paso 3: Conectarse al servidor ahora sin password

# mysql -u root

Con esto entramos con el cliente default

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


Paso 4: asignar un nuevo password al usuario Root de MySQL

mysql> use mysql;
mysql> update user set password=PASSWORD("password nuevo a asignar") where User='root';
mysql> flush privileges;
mysql> quit


Con esto ya tenemos todo listo, ahora tenemos que volver al modo "normal"

Paso 5: detener nuevamente el servidor MySQL

# /etc/init.d/mysql stop

Mostrará algo parecido a la primera vez:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[4567]: ended
[1]+ Done mysqld_safe --skip-grant-tables


Y ahora podemos volver a iniciar el servicio como siempre:

# /etc/init.d/mysql start

Paso 7: comprobar que todo esté bien, tan sólo, loguearse

# mysql -u root -p

Y listo!

gracias a esta ayudita

Otros posts que podrían llegar a gustarte...

Comentarios

  • Fernando    

    Excelente post Fabio! muy util para desarrolladores olvidadizos como yo!

    • Responder
    • Citar
    • Comentado:
  • Joaco    

    estas cosas deberian venir por defecto en los bookmarks del firefox

    Me meti en el link original y dice "Recover MySQL root Password".....pregunta, el verbo "recover" no deberias traducirlo como "restablecer" ó algo parecido? porque en si no estas recuperando la password (habria que ver que sistema de encriptacion usan, pero dudo que se pueda).

    • Responder
    • Citar
    • Comentado:
  • Please Bitch! I am SysAdmin!

    $ mysqladmin -u root password NEWPASSWORD

    :D:D:D:D:D:D:D

    • Responder
    • Citar
    • Comentado:
  • Fede    

    Fabio te dejo una lista de comandos útiles que usamos en el laburo !
    son muy prácticos
    http://yfrog.com/h2s00lxsj

    • Responder
    • Citar
    • Comentado:
  • Fede    

    Acá se vé mejor

    • Responder
    • Citar
    • Comentado:
  • Fabio    

    Fede dijo:

    Acá se vé mejor


    jajajajaj son los comandos suicidas! :D

    • Responder
    • Citar
    • Comentado:
  • Jonyx4    

    Fabio dijo:

    Fede dijo:
    Acá se vé mejor


    jajajajaj son los comandos suicidas! :D

    jjaja conozco mas de un compañero de trabajo que tiro el primer comando en producción :D

    • Responder
    • Citar
    • Comentado:
  • Nachox    

    Jonyx4 dijo:

    Fabio dijo:
    Fede dijo:
    Acá se vé mejor


    jajajajaj son los comandos suicidas! :D

    jjaja conozco mas de un compañero de trabajo que tiro el primer comando en producción :D


    O sea, ex-compañero de trabajo?

    • Responder
    • Citar
    • Comentado:
  • Fede    

    Hoy es un lindo día para tirar un RM -RF / en producción, cosa de tener el finde tranquilo

    • Responder
    • Citar
    • Comentado:
  • Gonzalo    

    Vos con esto estas queriendo decir que un usuario mal intencionado podria ,si tuviera acceso al servidor, cambiar el pass de la base de mysql asi como asi??

    me da mucho miedo mysql.. la pass la guarda en una tabla publica que se ve entrando sin permisos??? mas miedo..

    • Responder
    • Citar
    • Comentado:
  • Diego    

    Y si tuvieras que solo recuperar el mismo?
    Abrir DB, copiar HASH, luego usar RAINBOW tables.
    Hecho!

    (Comprobado varias veces... :-)

    Saludos! y gracias por este tipo de posts....

    • Responder
    • Citar
    • Comentado:
  • Fabio    

    Gonzalo dijo:

    Vos con esto estas queriendo decir que un usuario mal intencionado podria ,si tuviera acceso al servidor, cambiar el pass de la base de mysql asi como asi??

    me da mucho miedo mysql.. la pass la guarda en una tabla publica que se ve entrando sin permisos??? mas miedo..


    eeeh, si tenés acceso al servidor como root a vos te preocupa la base de datos? :D:D

    creo que ese sería el menor de tus problemas :P


    Diego dijo:
    Y si tuvieras que solo recuperar el mismo?
    Abrir DB, copiar HASH, luego usar RAINBOW tables.
    Hecho!

    (Comprobado varias veces... :-)

    Saludos! y gracias por este tipo de posts....


    escribo estos posts siempre que me pasa algo así :D me parece que es genial poder transmitir soluciones que nos funcionaron!

    • Responder
    • Citar
    • Comentado:
  • Daniel    

    Seria posible si me colaboran con lo mismo pero ya no en linux sino en windows. Gracias!

    • Responder
    • Citar
    • Comentado:
  • Daniel dijo:

    Seria posible si me colaboran con lo mismo pero ya no en linux sino en windows. Gracias!


    es exactamente lo mismo desde CMD (la línea de comandos de Windows) salvo por la parte de iniciar-detener un servicio

    • Responder
    • Citar
    • Comentado:

Deje su comentario:

Tranquilo, su email nunca será revelado.
La gente de bien tiene URL, no se olvide del http/https
Para evitar bots, si se tardó mucho en leer la nota seguramente no sirva y tenga que intentar dos veces

Negrita Cursiva Imagen Enlace


comentarios ofensivos o que no hagan al enriquecimiento del post serán borrados/editados por el administrador