BŁĄD 1698 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost” na Ubuntu 18.04

22

Wykonałem ten samouczek, aby zainstalować MySQL, ale po pomyślnym zainstalowaniu MySQL nie mogłem uzyskać dostępu do bazy danych.

BŁĄD 1698 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost”

Ashrafuzzaman Sujan
źródło
1
Napotkałem ten sam problem, po pewnym kopaniu, dostałem, że musisz ustawić hasło roota samodzielnie postępując zgodnie z instrukcjami na StackOverFlow .
Mohammad.H Fathi

Odpowiedzi:

47

Znalazłem rozwiązanie tutaj link , wykonując to rozwiązanie, rozwiązałem swój problem.

Krótkie kroki to:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Uwaga: oto testnowe hasło dla użytkownika root. Pamiętaj również, aby uruchomić polecenie sudo service mysql restartpo zmianie użytkownika.

Ashrafuzzaman Sujan
źródło
Dziękuję Ci. Dziwne, że serwer mysql nie proponuje już wpisywania hasła.
gamofe
1
BŁĄD 1064 (42000): Wystąpił błąd w składni SQL; sprawdź w instrukcji, która odpowiada wersji serwera MariaDB, czy używasz właściwej składni w pobliżu katalogu głównego „USER” @ @ „localhost” ZIDENTYFIKOWANY Z mysql_native_password BY „b230mehonot” w linii 1
alhelal
ten sam błąd tutaj ... :(
user1111929
@alhelal, Rozwiązanie dotyczy MySQL, a nie MariaDB. Możesz więc wypróbować inne rozwiązanie.
Ashrafuzzaman Sujan
Nie pisz mysql -u root, po prostu napisz „sudo mysql”, w systemach Ubuntu z MySQL 5.7 (i nowszymi) użytkownik root jest domyślnie uwierzytelniany przez wtyczkę auth_socket.
ravisoni
13

Znalazłem inny sposób, który jest znacznie lepszy, ponieważ nie musimy podawać żadnego hasła do systemu lokalnego.
To jest jak następuje.

Otwórz terminal i wpisz

sudo mysql -u root -p

Zostaniesz o to poproszony w mysql, tutaj możesz uruchomić dowolne polecenia mysql.

Użyj tabeli mysql do zmiany typu tabeli, abyśmy mogli użyć pustego hasła. Bellow jest za to odpowiedzialny

USE mysql;

Teraz zmieniamy typ tabeli, wykonując polecenie

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

teraz musimy opróżnić uprawnienia, ponieważ użyliśmy UPDATE. Jeśli używasz INSERT, UPDATE lub DELETE bezpośrednio w tabelach grantu , musisz użyć FLUSH PRIVILEGES, aby ponownie załadować tabele grantu.

FLUSH PRIVILEGES;

teraz wyjdź z mysql, wykonując następujące polecenie

exit;

teraz zrestartuj serwer mysql, wykonując następujące polecenie

service mysql restart

Mam nadzieję, że to może pomóc

Dziękuję Ci.

Krunal Pathak
źródło
2
To jest prawidłowa odpowiedź
Ningappa,
Dziękuję Z przyjemnością pomogę :)
Krunal Pathak