Nie można się zalogować do MySQL, odmowa dostępu

2

Po awarii ponownie zainstalowałem Ubuntu na moim komputerze deweloperskim w stosunku do poprzedniej instalacji, a po ponownej instalacji wszystkich niezbędnych pakietów (w tym serwera mysql i klienta mysql) kontynuowałem przywracanie bazy danych deweloperów. Niestety nie mogę się połączyć.

To działa :

$ sudo su
# mysql -u root

to nie

$ mysql -u root -p
  • Próbowałem wyczyścić mysql-*i ponownie zainstalować wszystko.
  • Próbowałem ponownie skonfigurować (tj. sudo dpkg-reconfigure mysql-server-5.7)
  • Próbowałem ręcznie zresetować hasło za pomocą UPDATEzapytań.
  • Próbowałem wszystkiego tutaj (ecept że tabela usernie posiada passwordkolumny, ale authentication_stringjeden)

Czy ktoś może mi pomóc w uruchomieniu tej rzeczy?


** Edytować **

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)

Obaj rootużytkownicy mają to samo hasło, ustawione za pomocą PASSWORD('password')i wszystkie uprawnienia zostały usunięte, a następnie usługa została uruchomiona ponownie.

Wbrew temu, co twierdzi, że dokumentacja, bieganie sudo dpkg-reconfigure mysql-server-5.7czy nie poprosi mnie, aby określić nowe hasło dla użytkownika root. Polecenie kończy się pomyślnie, ale nigdy nie jestem proszony o podanie hasła.

Yanick Rochon
źródło

Odpowiedzi:

2

Tutaj znalazłem swoją odpowiedź .

Zasadniczo pluginwartość dla użytkownika root@'localhost'nie była mysql_native_password.

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

działało i wreszcie mogłem się zalogować bez uprawnień superużytkownika.

Yanick Rochon
źródło
1

Uprawnienia MySQL prawdopodobnie nie zostały przywrócone. Fakt, że możesz zalogować się do serwera bez żadnych uprawnień, sugeruje, że musisz ustawić hasło roota i dodać innych użytkowników, którzy będą musieli korzystać z ich odpowiednimi uprawnieniami.

TheCompWiz
źródło
Hasło zostało ustawione root, ale nadal mogę zalogować się do konsoli mysql bez hasła w trybie superużytkownika (tj. Root). Ale jeśli podam rootużytkownika w trybie „normalnym”, hasło ustawione dla tego użytkownika zostanie zignorowane i nadal będę miał odmowę dostępu.
Yanick Rochon