Não é possível fazer login no MySQL, acesso negado

Não é possível fazer login no MySQL, acesso negado

Após uma falha, reinstalei o Ubuntu em minha máquina de desenvolvimento durante a instalação anterior e, depois de reinstalar todos os pacotes necessários (incluindo mysql-server e mysql-client), continuei restaurando o banco de dados de desenvolvimento. Infelizmente não consigo me conectar.

Isso funciona :

$ sudo su
# mysql -u root

isso não

$ mysql -u root -p
  • Eu tentei limpar mysql-*e reinstalar tudo.
  • Eu tentei reconfigurar (ou seja sudo dpkg-reconfigure mysql-server-5.7)
  • Tentei redefinir manualmente a senha usando UPDATEconsultas.
  • Eu tentei de tudoaqui(exceto que a tabela usernão possui uma passwordcoluna, mas authentication_stringsim uma)

Por favor, alguém pode me ajudar a fazer isso funcionar?


**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 rootos usuários têm a mesma senha, definida usando PASSWORD('password')e todos os privilégios foram liberados e o serviço foi reiniciado.

Ao contrário do que diz a documentação, correr sudo dpkg-reconfigure mysql-server-5.7faznãosolicite que eu especifique uma nova senha para root. O comando termina com sucesso, mas nunca sou solicitado a especificar uma senha.

Responder1

Eu encontrei minha resposta,aqui.

Basicamente, o pluginvalor para o usuário root@'localhost'não era mysql_native_password.

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

funcionou e finalmente consegui fazer login sem privilégios de superusuário.

Responder2

As permissões do MySQL provavelmente não foram restauradas. O fato de você poder fazer login no servidor sem nenhuma permissão sugere que você precisa definir a senha root e adicionar quaisquer outros usuários que precisem ser usados ​​com suas respectivas permissões.

informação relacionada