Clave de root en MySQL: resetear la contraseña cuando se desconoce la actual

En el post anterior explicamos cómo cambiar la contraseña del usuario root en MySQL cuando se conoce la misma. Nos queda por tratar en esta oportunidad otro caso particular. El mismo consiste en cambiar la clave de root en MySQL cuando se desconoce la actual. Recordemos que lo que digamos sobre MySQL aplica a MariaDB salvo que indiquemos lo contrario.

Cambiar la clave de root en MySQL

De la misma forma que el caso anterior, en este escenario se requiere que podamos acceder al servidor a través de la línea de comandos y poseamos permisos de superusuario de Linux. A continuación, deberemos seguir estos pasos:

Paso 1 – Para empezar, detener el servicio de bases de datos

systemctl stop mariadb

Paso 2 – Iniciar dicho servicio con la opción --skip-grant-tables, lo que luego nos permitirá conectarnos al servidor de bases de datos sin contraseña:

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mariadb

Si chequeamos el estado del servicio a continuación

systemctl status mariadb

vamos a ver en la Fig. 1 la presencia de la variable de entorno que seteamos:

Preparación para cambiar la clave de root en MySQL sin ingresar contraseña
Figura 1 – Preparación para cambiar la clave de root en MySQL sin ingresar contraseña

Paso 3 – Conectarnos al servidor desde otra terminal e iniciar una sesión en MySQL como root:

mysql -u root

A partir de este punto debemos seguir la instrucción principal que indicamos en el post anterior. Recordemos que la misma consiste en actualizar la tabla user de la base de datos mysql de la siguiente manera:

USE mysql;
UPDATE user SET password=PASSWORD('MiClaveAqui') WHERE User='root' AND Host = 'localhost';
FLUSH PRIVILEGES;

Una vez que hayamos ejecutado la consulta anterior, podremos cerrar la sesión en MySQL y la segunda terminal que abrimos mediante

exit
exit

(el primer exit nos permitirá desconectarnos de MySQL, mientras que el segundo cerrará la terminal actual).

Paso 4 – Detener el servicio

systemctl stop mariadb

Paso 5 – Eliminar la variable de entorno

systemctl unset-environment MYSQLD_OPTS

Paso 6 – Finalmente, volver a iniciar el servicio

systemctl start mariadb

A partir de este momento podremos conectarnos al servidor utilizando la nueva contraseña.

Espero que este post les haya resultado útil. ¡Nos leemos en breve!