GNU/Linux >> Tutoriales Linux >  >> Linux

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

En este artículo, le mostraré cómo restablecer la contraseña de root de MySQL de dos maneras diferentes. Además, ambos métodos funcionan con la bifurcación MariaDB sin Oracle.

¿Por qué?

Hay dos razones principales por las que uno necesitaría restablecer la contraseña de root:

  • olvidaste esa contraseña
  • usted no sabe esa contraseña

Puede haber muchas razones para no saber la contraseña:nunca supo la contraseña y el antiguo DBA se ha ido; alguien cambió por diversión o por motivos maliciosos; son las 3 a. m., el sistema está colapsado y el dba está de vacaciones en otro país, etc.

El hecho es que una mañana necesitas rellenar la base de datos y llegar a esta situación:

Supongo que tiene superusuario (es decir, su o sudo a root) acceso al Sistema Operativo. Mi sistema operativo en este tutorial es Debian Linux.

Ambos métodos requieren que detenga el servicio mysql antes. Hazlo con (no olvides su/sudo según sea necesario):

# service mysql stop

Método 1:

Cree un archivo con el comando SQL para establecer una nueva contraseña de root que usaremos en el inicio de mysql. Puede usar cualquier editor de texto o simplemente escribir:

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

Si elige el editor de texto, cree un archivo con solo la parte en negrita. Por supuesto, elige un real contraseña, fácil de recordar y difícil de descubrir.

E inícielo manualmente con el usuario mysql (-u mysql) y con el archivo que creamos antes (–init-file:passreset.sql). La línea de comando completa sería:

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

Espere hasta que aparezca el mensaje:mysqld:listo para conexiones . Luego abra otra consola para probar su nueva contraseña de root:

Método 2:

En el pasado, vi varias veces en Internet cómo restablecer la contraseña de root de mysql. En el primer intento esta mañana no funcionó para mí, pero encontré una solución alternativa.

Usaremos este interruptor del comando mysqld:

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

Esto me dejó acceso completo a todas las tablas. El procedimiento es conectarse a mysql y ejecutar el comando ALTER USER que vimos en el método anterior, pero recibí un error sobre mysqld ejecutándose con skip-grant-tables.

La solución es ejecutar mysqld con el conmutador skip-grant-tables y usar el usuario mysql. La línea de comando completa es:

# mysqld -u mysql --skip-grant-tables

Y, en otra consola, vacíe los privilegios antes de la actualización, luego vuelva a vaciar los privilegios:

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

Finalizar

Ahora puede detener mysql e iniciarlo normalmente. En mi caso, ctrl-c no funcionó para detenerlo, tengo que eliminar el proceso iniciado manualmente antes:

# killall mysqld
# service mysql start

Y eso es todo, con uno de esos métodos recuperas el control sobre tu MySQL o MariaDB.


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

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

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

  4. ¿Cómo restablecer la contraseña de root de MySQL?

  5. Restablecer una contraseña raíz de MySQL

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

Cómo restablecer la contraseña de root en Fedora 35

Cómo restablecer la contraseña de root en Debian 11

Cómo cambiar/restablecer la contraseña raíz de MySQL o MariaDB

¿Cómo restablecer la contraseña de root de MySQL 8.0 en Centos 7.x?

Cómo restablecer la contraseña raíz en CentOS/RHEL 8