¿Olvidaste tu base de datos MySQL root
? ¿contraseña de usuario? ¡No hay problema! Esta guía paso a paso explica cómo restablecer la contraseña de root en MySQL 8 en el sistema operativo Ubuntu 20.04.
auth_socket
complemento para autenticarse con el servidor MySQL en sistemas Ubuntu que ejecutan MySQL 5.7 y versiones posteriores. Entonces puede iniciar sesión en el servidor MySQL como root
usuario con sudo mysql
comando siempre que conozca el sudo
del usuario de su sistema clave. En ese caso, no es necesario cambiar MySQL root
clave. Si ya ha cambiado el método de autenticación para MySQL root usuario a caching_sha2_password
o mysql_native_password
, siga los pasos a continuación para restablecer la root
contraseña de la base de datos MySQL.
Restablecer contraseña raíz en MySQL 8 en Ubuntu Linux
1. Primero, detenga el servicio MySQL usando el comando:
$ sudo systemctl stop mysql
Esto detendrá el servicio MySQL si se está ejecutando. Puede verificar el estado del servicio MySQL con el comando:
$ sudo systemctl status mysql
Salida de muestra:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS) Main PID: 1446 (code=exited, status=0/SUCCESS) Status: "Server shutdown complete" May 31 07:57:50 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 07:57:51 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server. May 31 11:01:14 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server… May 31 11:01:15 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded. May 31 11:01:15 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.

2. A continuación, inicie el servidor MySQL sin ninguna verificación de permisos. Para hacerlo, ejecute:
$ sudo systemctl edit mysql
Esto abrirá el mysql
systemd
archivo de configuración su editor de texto predeterminado. En mi caso, es nano
redactor.
Agregue las siguientes líneas en él:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Después de agregar las líneas anteriores, presione CTRL+O
y ENTER
para guardar el archivo y luego presione CTRL+X
para cerrarlo.
Aquí, el --skip-grant-tables
La opción le permite conectarse al servidor de base de datos MySQL sin contraseña y con todos los privilegios. También deshabilitará declaraciones de administración de cuentas como ALTER USER
y SET PASSWORD
. Y el --skip-networking
La opción se utiliza para evitar que otros clientes se conecten al servidor de la base de datos. Dado que deshabilita todas las conexiones remotas, ninguno de los clientes remotos puede acceder al servidor de la base de datos hasta que reinicie el servidor de la base de datos normalmente.
3. Vuelva a cargar systemd
configuración usando el comando:
$ sudo systemctl daemon-reload
4. Inicie el servicio MySQL:
$ sudo systemctl start mysql
Esto iniciará el servidor MySQL con --skip-grant-table
s y --skip-networking
opciones Puede verificarlo comprobando el estado del servicio MySQL:
$ sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mysql.service.d └─override.conf Active: active (running) since Mon 2021-05-31 11:39:18 UTC; 1min 23s ago Process: 1882 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1905 (mysqld) Status: "Server is operational" Tasks: 36 (limit: 2280) Memory: 331.0M CGroup: /system.slice/mysql.service └─1905 /usr/sbin/mysqld --skip-grant-tables --skip-networking May 31 11:39:16 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 11:39:18 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
5. Ahora, conéctese al servidor MySQL como root
usuario sin contraseña:
$ sudo mysql -u root
Accederá inmediatamente al indicador de shell de MySQL.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
6. Iniciamos sesión en el servidor de la base de datos sin cargar tablas de concesión (porque usamos --skip-grant-tables
opción). Entonces no podemos usar ALTER USER
comando que necesitaba para restablecer la contraseña. Para cargar tablas de concesión, ejecute el siguiente comando desde el indicador de shell de MySQL:
mysql> FLUSH PRIVILEGES;
7. A continuación, ejecute cualquiera de los siguientes comandos para restablecer MySQL root
contraseña.
Si está utilizando caching_sha2_password
complemento, ejecute:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';

Si usa mysql_native_password
complemento, ejecute esto en su lugar:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
¡Reemplace Password123#@!
con el tuyo.
Después de cambiar MySQL root
contraseña, salga del indicador de shell de MySQL:
mysql> exit
8. Revertir el systemd
modificado la configuración vuelve a la configuración normal usando el comando:
$ sudo systemctl revert mysql
Esto eliminará todos los archivos modificados.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
9. Vuelva a cargar systemd
configuración para hacer efectivos los cambios:
$ sudo systemctl daemon-reload
10. Finalmente, reinicie el servidor MySQL normalmente:
$ sudo systemctl restart mysql
11. Ahora debería poder conectarse a la base de datos MySQL como root
usuario con la new password
usando el comando:
$ mysql -u root -p
Introduzca la root
contraseña para acceder al indicador de shell de MySQL:
mysql>
También hay otra forma de cambiar MySQL root
contraseña en Linux. Es ligeramente diferente a este método. Si te interesa saberlo, échale un vistazo al siguiente enlace:
>> How To Reset MySQL Root User Password In Linux
Conclusión
Como puede ver, restablecer la contraseña de root de MySQL es fácil. Si siguió los pasos anteriores cuidadosamente, puede recuperar la contraseña raíz de su base de datos MySQL en un par de minutos. No lo pierdas de nuevo. Memorice o guarde su contraseña en un lugar seguro.