¿Alguna vez has tenido ese momento de pánico en el que te das cuenta de que has olvidado la contraseña de root en tu servidor MySQL/MariaDB? ¡No estás solo! A todos nos ha pasado. Ya sea por un descuido, una semana demasiado larga o simplemente una memoria selectiva, perder el acceso a la raíz puede hacernos sudar frío más rápido que una consulta SQL mal optimizada.

Pero no temas, querido sysadmin, estamos aquí para salvarte de la ansiedad inducida por la pérdida de contraseñas y devolverte el control sobre tus bases de datos. En este tutorial vamos a explicar como recuperar el acceso a root.

💡
Para una buena gestión de contraseñas recomendamos usar un Administrador de Contraseñas y tenerlas siempre bajo llave.

Recuperar acceso root

Para recuperar el acceso es necesario parar el servicio de bases de datos y lanzarlo de nuevo en modo seguro.

Para ello primero pararemos el servicio:

# Si usas MySQL
systemctl stop mysql.service

# Si usas MariaDB
systemctl stop mariadb.service

Luego lanzaremos de nuevo el servicio en modo seguro:

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

Salida del comando

[1] 45202
root@mysql:~# /usr/bin/mysqld_safe: Deprecated program name. It will be removed in a future release, use 'mariadbd-safe' instead
240212 13:43:02 mysqld_safe Logging to '/var/lib/mysql/mysql.err'.
240212 13:43:02 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql

Accedemos a MySQL/MariaDB:

mysql -u root

Y actualizamos la contraseña usando la consulta correspondiente:

# Para MySQL 5.7.6 y posteriores y MariaDB 10.1.20 y posteriores
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

# Para MySQL 5.7.5 y anteriores y MariaDB 10.1.20 y anteriores
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
💡
Puedes consultar tu versión de MySQL o MariaDB con el comando mysql --version

Matamos el proceso que hemos levantado para MySQL/MariaDB:

kill `cat /var/run/mysqld/mysqld.pid`

E iniciamos el servicio como siempre:

# Para MySQL
systemctl start mysqld

# Para MariaDB
systemctl start mariadb

Y listo! Ya deberíamos de poder acceder con la nueva contraseña.

Conclusión

Ahora deberías de tener un nuevo acceso administrativo al servidor MySQL o MariaDB restaurado. Asegúrate de que la nueva contraseña de root que elijas sea fuerte y segura y guárdala en un lugar seguro.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación