Cómo restablecer la contraseña de root en MySQL 8.0


En el desafortunado evento de olvidar o perder su contraseña de root de MySQL, seguramente necesitará una forma de recuperarla de alguna manera. Lo que necesitamos saber es que la contraseña se almacena en la tabla de usuarios. Esto significa que debemos encontrar una manera de evitar la autenticación MySQL, para poder actualizar el registro de contraseña.

Afortunadamente, es fácil de lograr y este tutorial lo guiará a través del proceso de recuperación o restablecimiento de la contraseña de root en la versión MySQL 8.0.

Según la documentación de MySQL, hay dos formas de restablecer la contraseña de MySQL raíz. Vamos a revisar los dos.

Restablecer la contraseña de la raíz de MySQL usando –init-file

Una de las formas de restablecer la contraseña de root es crear un archivo local y luego iniciar el servicio MySQL usando la opción --init-file como se muestra.

# vim /home/user/init-file.txt

Es importante que se asegure de que el usuario de mysql pueda leer el archivo. Dentro de ese archivo pegue lo siguiente:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

En el cambio anterior " new_password " con la contraseña que desea utilizar.

Ahora asegúrese de que el servicio MySQL está detenido. Puedes hacer lo siguiente:

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

Luego ejecuta lo siguiente:

# mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Esto iniciará el servicio MySQL y durante el proceso ejecutará el archivo de inicio que ha creado y, por lo tanto, se actualizará la contraseña para el usuario root. Asegúrese de eliminar el archivo una vez que se haya restablecido la contraseña.

Asegúrese de detener el servidor e iniciarlo normalmente después de eso.

# systemctl stop mysqld.service        # for distros using systemd 
# systemctl restart mysqld.service     # for distros using systemd 

# /etc/init.d/mysqld stop              # for distros using init
# /etc/init.d/mysqld restart           # for distros using init

Ahora debería poder conectarse al servidor MySQL como root con la nueva contraseña.

# mysql -u root -p

Restablecer la contraseña de la raíz de MySQL usando –skip-grant-tables

La segunda opción que tenemos es iniciar el servicio MySQL con la opción --skip-grant-tables . Esto es menos seguro ya que mientras el servicio se inicia de esa manera, todos los usuarios pueden conectarse sin contraseña.

Si el servidor se inicia --skip-grant-tables , la opción para --skip-networking se activa automáticamente para que las conexiones remotas no estén disponibles.

Primero asegúrese de que el servicio MySQL está detenido.

# systemctl stop mysqld.service     # for distros using systemd 
# /etc/init.d/mysqld stop           # for distros using init

A continuación, inicie el servicio con la siguiente opción.

# mysqld --skip-grant-tables --user=mysql &

Luego, puede conectarse al servidor mysql simplemente ejecutando.

# mysql

Dado que la administración de cuentas está deshabilitada cuando el servicio se inicia con la opción --skip-grant-tables , tendremos que volver a cargar las subvenciones. De esa manera podremos cambiar la contraseña más tarde:

# FLUSH PRIVILEGES;

Ahora puede ejecutar la siguiente consulta para actualizar la contraseña. Asegúrese de cambiar “new_password” con la contraseña real que desea usar.

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Ahora detenga el servidor MySQL e inícielo normalmente.

# systemctl stop mysqld.service        # for distros using systemd 
# systemctl restart mysqld.service     # for distros using systemd 

# /etc/init.d/mysqld stop              # for distros using init
# /etc/init.d/mysqld restart           # for distros using init

Debes poder conectarte con tu nueva contraseña.

# mysql -u root -p

Es posible que también desee leer estos útiles artículos siguientes relacionados con MySQL.

  1. How to Install MySQL 8 in CentOS, RHEL and Fedora
  2. 15 Useful MySQL Performance Tuning and Optimization Tips
  3. 12 MySQL Security Practices for Linux
  4. 4 Useful Commandline Tools to Monitor MySQL Performance
  5. MySQL Database Administartion Commands

En este artículo, aprendió cómo restablecer la contraseña de root perdida para el servidor MySQL 8.0. Espero que el proceso haya sido fácil.