No puedo iniciar sesión en MySQL, acceso denegado

No puedo iniciar sesión en MySQL, acceso denegado

Después de un bloqueo, reinstalé Ubuntu en mi máquina de desarrollo sobre la instalación anterior, y después de reinstalar todos los paquetes necesarios (incluidos mysql-server y mysql-client) seguí restaurando la base de datos de desarrollo. Desafortunadamente, no puedo conectarme.

Esto funciona :

$ sudo su
# mysql -u root

esto no lo hace

$ mysql -u root -p
  • Intenté purgar mysql-*y reinstalar todo.
  • He intentado reconfigurar (es decir sudo dpkg-reconfigure mysql-server-5.7)
  • Intenté restablecer manualmente la contraseña mediante UPDATEconsultas.
  • lo he probado todoaquí(excepto que la tabla userno tiene una passwordcolumna, sino authentication_stringuna)

Por favor, ¿alguien puede ayudarme a hacer que esto funcione?


** Editar **

mysql> SELECT user, host, authentication_string, password_expired, account_locked FROM user WHERE user = 'root';
+------------------+-----------+-------------------------------------------+------------------+----------------+
| user             | host      | authentication_string | password_expired | account_locked |
+------------------+-----------+-----------------------+------------------+----------------+
| root             | localhost | *<password hash>      | N                | N              |
| root             | %         | *<password hash>      | N                | N              |
+------------------+-----------+-----------------------+------------------+----------------+
5 rows in set (0.00 sec)

Ambos rootusuarios tienen la misma contraseña, configurada con PASSWORD('password'), y se eliminaron todos los privilegios, luego se reinició el servicio.

Al contrario de lo que dice la documentación, ejecutar sudo dpkg-reconfigure mysql-server-5.7nonome pide que especifique una nueva contraseña para root. El comando finaliza exitosamente, pero nunca se me pide que especifique una contraseña.

Respuesta1

encontré mi respuesta,aquí.

Básicamente, el pluginvalor para el usuario root@'localhost'no era mysql_native_password.

UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

funcionó y finalmente pude iniciar sesión sin privilegios de superusuario.

Respuesta2

Probablemente los permisos de MySQL no se restauraron. El hecho de que pueda iniciar sesión en el servidor sin ningún permiso sugiere que necesita establecer la contraseña de root y agregar cualquier otro usuario que deba usarse con sus respectivos permisos.

información relacionada