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”


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.


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.


2
To jest prawidłowa odpowiedź
Ningappa,

Dziękuję Z przyjemnością pomogę :)
Krunal Pathak
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.