Hace unos días me volvió a pasar: se me olvidó la contraseña del usuario root de MySQL. No fue la primera vez y posiblemente no será la última, por eso me he decidido a escribir este pequeño tutorial.
El problema que tengo es que cuando necesito crear una base de datos para un uso específico (Joomla, Moodle, etc.), creo un usuario para esa base de datos únicamente con los permisos necesarios. Por eso, como no suelo usar el usuario root, cuando me quiero acordar, se me ha olvidado.
Afortunadamente no nada complicado reiniciar la contraseña de root en MySQL y, aunque en el Manual de Referencia de MySQL está explicado el procedimiento, lo vamos a hacer al estilo Slice of Linux: paso a paso y con capturas para no perdernos.
Los pasos para reiniciar la contraseña de root en MySQL son los siguientes:
- Paramos MySQL con el comando:
sudo /etc/init.d/mysqld stop
- A continuación, iniciamos MySQL con la opción skip-grant-tables para que no nos pida la contraseña. ¡Ojo! Esto es peligroso porque cualquiera podrá entrar a MySQL como usuario root y sin contraseña hasta que ejecutemos el comando FLUSH PRIVILEGES en el paso 5.
sudo mysqld
--skip-grant-tables &
- Accedemos a MySQL con el usuario root. Si el paso anterior se hizo sin problemas, ahora no nos pedirá la contraseña.
mysql -u root
- Con el siguiente comando establecemos una nueva contraseña. Cambia nuevaclave por la nueva contraseña que quieras ponerle al usuario root de MySQL.
UPDATE mysql.user SET Password=PASSWORD('nuevaclave') WHERE User='root';
- Por último, le indicamos a MySQL que recargue las tablas de permisos con el comando:
FLUSH PRIVILEGES;
- Salimos de MySQL: En la siguiente captura de pantalla se puede ver la ejecución de estos últimos comandos:
quit
¡Hasta la próxima vez que se te olvide la contraseña!