Recuperar contraseña root en MySql
Para los que gestionamos muchos servidores y contraseñas por evitable que parezca llega un día que necesitamos cambiar o recuperar la contraseña de root en mysql, bien porque se nos olvida, se nos pierde, o porque llega a nuestras manos una máquina que la configuró otra persona y es imposible contactar con él (seguro que esto os suena de algo).
Paso a paso para modificar la password de root en MySql
root@servidor# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Vamos al grano, la situación es la siguiente: Tenemos un demonio mysql funcionando del que no tenemos ni idea de cual es su password, pero tenemos acceso físico a esa máquina, o acceso por conexión remota SSH, si estamos dentro de uno de estos dos casos podremos modificar la password actual sin conocer la que actualmente está en funcionamiento.
Modificando la password de root perdida en mysql | recuperar contraseña root en mysql
Antes de nada hacer una sencilla aclaración, demonio en Linux se llama al servicio que funciona en segundo plano y no para nunca salvo de forma manual, avería o ataque Hacker DDos Denegación de Servicio.
Logeate como usuario root de la máquina
oscar@servidor:/$ su root Contraseña:
Parar el Servicio de Base de Datos Mysql
root@servidor:/# service mysql stop mysql stop/waiting
Iniciar mysql con privilegios skip grant tables
Esta opción hace que la máquina servidora no use el sistema de privilegios de mysql.
Añadimos la opción –skip-networking& para entrar a mysql sin password sólo desde LOCALHOST, de este modo somos precavidos si se trata de un servidor que está en funcionamiento bajo una IP Pública.
root@servidor:/# mysqld_safe --skip-grant-tables --skip-networking& [1] 3035 Me devuelve esto: 40405 11:56:14 mysqld_safe Logging to syslog. 140405 11:56:14 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Ahora entramos al mysql sin password
Como veis no hay problemas para entrar hasta la cocina sin contraseña alguna.
root@servidor:/# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.69-0ubuntu0.10.04.1 (Ubuntu)
Modificamos la contraseña de root
mysql> UPDATE user SET password=PASSWORD(‘nuevacontraseña’) WHERE user=’root’;
Refrescamos los permisos de Mysql
Si no refrescamos los cambios no serán efectivos.
mysql> flush privileges ;
Salimos de Mysql
mysql> exit
Hacemos un restart del servicio
root@servidor:/# service mysql restart
Con esto ya hemos entrado al mysql como root sin contraseña, la hemos modificado, y el servicio queda funcionando igual que al principio.
Espero que este artículo os sirva de ayuda,
Un saludo,
Óscar / DevService Barcelona