GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo restablecer la contraseña de root en MySQL 8 en Ubuntu Linux

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

Nota: Como ya sabrá, el usuario raíz de MySQL usa 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.


Ubuntu
  1. Cómo restablecer la contraseña raíz de MySql

  2. Cómo restablecer la contraseña raíz de MySql

  3. ¿Cómo restablecer la contraseña de Ubuntu?

  4. Cómo restablecer la contraseña raíz del servidor MySQL

  5. Cómo restablecer la contraseña raíz de MySQL

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

Cómo restablecer la contraseña de root de Ubuntu 22.04 LTS

Cómo cambiar la contraseña de root en Ubuntu Linux

Cómo restablecer la contraseña de root olvidada en Ubuntu

Cómo restablecer la contraseña raíz olvidada en Ubuntu Linux

Cómo restablecer la contraseña de root en Ubuntu 22.04