Jeśli otrzymujesz błąd z informacją, że dostęp jest odmówiony dla root użytkownika w MariaDB, ten artykuł może pomóc.
Błąd
Próbowałem zaimportować informacje o strefie czasowej mojego systemu do MariaDB za pomocą następującego polecenia:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Ale spowodowało to następujący błąd:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Przyczyna
Po zbadaniu tego zdałem sobie sprawę, że root użytkownik nie miał jeszcze ustawionego hasła.
Kiedy uruchomiłem następujące zapytanie:
SELECT user, password
FROM user
WHERE User = 'root'; Otrzymałem następujący wynik:
+-------------+----------+ | User | Password | +-------------+----------+ | root | invalid | +-------------+----------+
Dokumentacja MariaDB zawiera następujące informacje:
Mimo to niektórzy użytkownicy mogą chcieć zalogować się jako root MariaDB bez używania sudo. Dlatego stara metoda uwierzytelniania — konwencjonalne hasło MariaDB — jest nadal dostępna. Domyślnie jest wyłączone („nieprawidłowy” nie jest prawidłowym hashem hasła), ale można ustawić hasło za pomocą zwykłego
SET PASSWORDoświadczenie. I nadal zachowaj dostęp bez hasła przez sudo.
To wygląda na naszą odpowiedź.
Rozwiązanie
Zgodnie z powyższym akapitem, musiałem ustawić hasło dla root użytkownik:
SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd"); Uruchomienie tego (z innym hasłem) załatwiło sprawę.
Więc jeśli otrzymasz powyższy błąd, być może to pomoże.