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


En el desafortunado caso 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 necesitamos encontrar una manera de eludir la autenticación MySQL, para que podamos 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 raíz de MySQL. Revisaremos ambos.

Restablecer la contraseña 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 lo anterior, cambie "new_password" por la contraseña que desea utilizar.

Ahora asegúrese de que el servicio MySQL esté detenido. Puede 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 init 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 usando la nueva contraseña.

# mysql -u root -p

Restablecer la contraseña 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 por lo que las conexiones remotas no estará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

Luego 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 concesiones. De esa forma 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" por la contraseña real que desea utilizar.

# 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

Debería poder conectarse con su nueva contraseña.

# mysql -u root -p

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

  1. Cómo instalar MySQL 8 en CentOS, RHEL y Fedora
  2. 15 consejos útiles de optimización y ajuste del rendimiento de MySQL
  3. 12 prácticas de seguridad de MySQL para Linux
  4. 4 útiles herramientas de línea de comandos para monitorear el rendimiento de MySQL
  5. Comandos de administración de la base de datos MySQL

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 sencillo.