Cómo restablecer la contraseña raíz de MySQL o MariaDB en Linux


Si está configurando un servidor de base de datos MySQL o MariaDB por primera vez, es probable que esté ejecutando mysql_secure_installation poco después para implementar la configuración de seguridad básica.

Una de estas configuraciones es la contraseña de la cuenta raíz de la base de datos, que debe mantener en privado y usar solo cuando sea estrictamente necesario. Si olvida la contraseña o necesita restablecerla (por ejemplo, cuando el administrador de una base de datos cambia de rol, ¡o es despedido!).

Este artículo te vendrá bien. Explicaremos cómo restablecer o recuperar la contraseña de root de MySQL o MariaDB olvidada en Linux.

Aunque usaremos un servidor MariaDB en este artículo, las instrucciones también deberían funcionar para MySQL.

Recuperar la contraseña raíz de MySQL o MariaDB

Para comenzar, detenga el servicio de la base de datos y verifique el estado del servicio, deberíamos ver la variable de entorno que configuramos anteriormente:

------------- SystemD ------------- 
# systemctl stop mariadb

------------- SysVinit -------------
# /etc/init.d/mysqld stop

A continuación, inicie el servicio con --skip-grant-tables :

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

------------- SysVinit -------------
# mysqld_safe --skip-grant-tables &

Esto le permitirá conectarse al servidor de la base de datos como root sin una contraseña (es posible que deba cambiar a una terminal diferente para hacerlo):

# mysql -u root

A partir de ese momento, siga los pasos que se describen a continuación.

MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

Finalmente, detenga el servicio, desarme la variable de entorno e inicie el servicio una vez más:

------------- SystemD ------------- 
# systemctl stop mariadb
# systemctl unset-environment MYSQLD_OPTS
# systemctl start mariadb

------------- SysVinit -------------
# /etc/init.d/mysql stop
# /etc/init.d/mysql start

Esto hará que los cambios anteriores surtan efecto, lo que le permitirá conectarse al servidor de la base de datos utilizando la nueva contraseña.

En este artículo hemos discutido cómo restablecer la contraseña raíz de MariaDB/MySQL. Como siempre, no dude en utilizar el formulario de comentarios a continuación para enviarnos una nota si tiene alguna pregunta o comentario. ¡Esperamos con interés escuchar de usted!