Não é possível acessar o MySQL, acesso negado

1

Após uma falha, eu instalei o Ubuntu na minha máquina dev sobre a instalação anterior, e depois que eu reinstalei todos os pacotes necessários (incluindo o mysql-server e o mysql-client) eu fui restaurando o banco de dados dev. Infelizmente, não consigo me conectar.

Isso funciona:

$ sudo su
# mysql -u root

isso não

$ mysql -u root -p
  • Eu tentei remover mysql-* e reinstalar tudo.
  • Eu tentei reconfigurar (por exemplo, sudo dpkg-reconfigure mysql-server-5.7 )
  • Tentei redefinir manualmente a senha usando UPDATE consultas.
  • Eu tentei de tudo aqui (exceto que a tabela user não tem uma coluna password , mas um authentication_string one)

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

Ao contrário do que a documentação diz, executar sudo dpkg-reconfigure mysql-server-5.7 não me pedirá para especificar uma nova senha para o root. O comando termina com sucesso, mas nunca me pedem para especificar uma senha.

    
por Yanick Rochon 11.04.2018 / 20:08

2 respostas

1

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 do root e adicionar outros usuários que precisem ser usados com suas respectivas permissões.

    
por 11.04.2018 / 20:12
1

Encontrei minha resposta aqui .

Basicamente, o valor plugin para o usuário root@'localhost' não foi mysql_native_password .

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

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

    
por 11.04.2018 / 22:55

Tags