Cómo restaurar la clave root en MySQL 2017-10-08

Muchas veces nos hemos visto en el problema de cómo recuperar la clave root en un servidor MySQL. A través de este tutorial conoceremos cómo hacerlo.

Más de alguna vez nos hemos visto en la incómoda situación de olvidar la clave root de algún servidor MySQL e incluso de necesitar crear un usuario y/o base de datos en un servidor donde nadie la conoce.

Si estás en este problema, a continuación te brindaremos los pasos a seguir para restaurar la clave root en MySQL en un ambiente Debian y/o Ubuntu.

Cómo restaurar la clave root en MySQL

Parar el servicio de MySQL

Para esto necesitar tener el usuario root del host o equipo donde está instalado el servidor de MySQL o incluso pertenecer al grupo sudoers.

sudo service mysql stop

Crear directorios necesarios para iniciar MySQL en modo seguro

sudo mkdir /var/run/mysqld

Luego de crear el directorio, necesitamos darle permisos para que MySQL pueda escribir en el.

sudo chown mysql:mysql /var/run/mysqld

Iniciar el servidor MySQL en modo seguro

El servidor de MySQL posee muchos parámetros de incio que se pueden manipular, en este caso vamos a configurar que inicie sin la tabla de permisos de usuarios y conexios TCP/IP.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Es probable que necesites dar un salto de línea en la terminal luego de este comando.

Restaurar la clave del usuario root de MySQL

Lo primero que se debe hacer es iniciar una terminal con el cliente de MySQL

mysql -u root

Si te fijas, puedes entrar sin necesidad de ingresar una clave. Para configurar la clave debes ejecutar la siguiente consulta.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxx');

Luego de correr este comando, debes limpiar el caché de permisos de usuarios.

FLUSH PRIVILEGES;

Parar el servidor MySQL en modo seguro e iniciarlo

Como último paso debemos salir del cliente MySQL con el comando EXIT y luego parar el servicio de MySQL que iniciamos en modo seguro. Lo hacemos con el siguiente comando.

sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown

Si te fijas te pide la clave root para poder continuar. Debes ingresar la clave root del usuario en MySQL.

Una vez esté abajo el servicio, puedes iniciarlo de la forma habitual con el siguiente comando.

sudo service mysql start

Una vez haya iniciado, puedes probar tu nueva clave ingresando al cliente de MySQL.

mysql -u root -p

Listo, tienes una nueva clave y puedes administrar el servidor MySQL de nuevo.


Acerca del autor

Hugo Gilmar Erazo Full Stack Web Developer

Soy un desarrollador web con más de 10 años de experiencia. Me considero fanático de GNU/Linux, lo cual me ha permitido complementar mis conocimientos en el desarrollo web con la administración de servidores.

Aunque manejo todo lo relacionado al Front-End, me inclino más por el desarrollo Back-End. También desarrollo aplicaciones móviles híbridas. Me gusta lo que hago.

Compartir este artículo