Saltar al contenido

No se puede restablecer la contraseña de root con –skip-grant-tables en ubuntu 16

Solución:

Descubrí que mysql.sock se elimina cuando se detiene el servicio mysql y mysqld_safe no puede crearlo (no pude encontrar el motivo), por lo que mi solución fue hacer una copia de seguridad de la carpeta sock y restaurar antes de iniciar mysqld_safe

Iniciar servidor

$ sudo service mysql start

Ir a la carpeta de calcetines

$ cd /var/run

Copia de seguridad del calcetín

$ sudo cp -rp ./mysqld ./mysqld.bak

Detener servidor

$ sudo service mysql stop

Restaurar el calcetín

$ sudo mv ./mysqld.bak ./mysqld

Inicie mysqld_safe

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Iniciar shell mysql

mysql -u root

Cambiar la contraseña

FLUSH PRIVILEGES;

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('my_new_password');

Para Ubuntu 19 con MySQL 8.0.17-0ubuntu2, lo que terminó funcionando para mí fue una combinación de muchas respuestas:

  1. En el archivo de configuración de MySQL (/etc/mysql/mysql.conf.d/mysqld.cnf en mi máquina), debajo [mysqld], agregar:

    skip-grant-tables = 1
    plugin-load-add = auth_socket.so

  2. Reinicie el servicio MySQL;

  3. Conéctese a MySQL: mysql -uroot;

  4. Correr:

UPDATE mysql.user SET authentication_string=null WHERE User="root";
FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';
  1. Detenga MySQL y comente skip-grant-tables en el archivo de configuración;

  2. Inicie MySQL nuevamente y esto debería funcionar ahora: mysql -u root -ppass123.

La respuesta de pedronalbert anterior funcionó para mí, pero el último paso ahora está en desuso y arroja la siguiente advertencia:

Advertencia | 1287 | ‘SET PASSWORD FOR = PASSWORD (‘ ‘)’ está obsoleto y se eliminará en una versión futura. Utilice SET PASSWORD FOR = ” en su lugar

Utilice este comando en su lugar:

SET PASSWORD FOR root="<plaintext_password>";
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *