MySQL Access odmówił użytkownika „root”@„localHost”

MySQL Access odmówił użytkownika „root”@„localHost”
„Jednym z najczęstszych błędów napotykanych przez użytkowników MySQL jest„ MySQL Access odrzucony dla użytkownika „root”@„localHost”.”I niezależnie od tego, czy jesteś nowym użytkownikiem MySQL, czy nowym, znajomość różnych technik rozwiązania jest korzystna.

Korzystając z tego przewodnika, odkryjesz trzy metody rozwiązania tego błędu."

Co oznacza ten błąd?

Najlepszym sposobem na zrozumienie tego błędu jest rozbicie go na pojedyncze komponenty. Ten błąd występuje, gdy próbujesz zalogować się do instancji MySQL na lokalnym komputerze, stąd „LocalHost.'

Przykładem jest jak pokazano:

$ mysql -u root -p

Składniki błędu są następujące:

  1. Błąd 1045 (28000) - odnosi się odpowiednio do kodu błędu i sqlstate. Na przykład w MySQL i Mariadb kod błędu 1045 oznacza odmowę dostępu do tej nazwy użytkownika z określonym hasłem.
  2. Drugi to ciąg wiadomości. Komunikat o błędzie następuje w formacie: Access DEMED dla użytkownika „%s”@'%s' (za pomocą hasła:%s).

UWAGA: Pierwszy %s w komunikacie o błędzie odnosi się do nazwy użytkownika, podczas gdy drugi odnosi się do hosta.

Rozwiązanie 1: sudo do mysql

Pierwszą i najczęstszą metodą rozwiązania tego błędu jest sudo w instancji MySQL i ustawienie auth_plugin na mysql_native_password.

Otwórz swój terminal i uruchom:

$ sudo mysql

Wprowadź hasło do konta i kontynuuj.

Następnie zmień auth_plugin i ustaw nowe hasło dla konta głównego, jak pokazano:

Zmień użytkownika „root@localHost” zidentyfikowane z MySQL-Native_Password według „hasła”;

Zmiana wtyczki uwierzytelniania pozwoli na zalogowanie się na serwerze.

Następnie spłucz przywileje do aktualizacji tabel dotacji:

Przywileje spłukiwane;

Na koniec wyjdź z terminalu i spróbuj zalogować się:

$ mysql -u root -p

Rozwiązanie 2- Ręcznie edytuj plik konfiguracyjny

Jeśli błąd będzie się utrzymywał, może być konieczne edycję pliku konfiguracyjnego MySQL. W większości przypadków jest pod nazwą.CNF w katalogach /etc lub /etc /mysql.

Znajdź ten plik w folderze instalacyjnym MySQL dla użytkowników Windows i Mac.

Jeśli plik nie istnieje, utwórz go.

Otwórz plik za pomocą edytora tekstu i zlokalizuj blok MySQLD.

$ nano/etc/mysql/my.CNF

W bloku [Mysqld] dodaj następujący wpis.

Pomijane tabele

Zamknij i zapisz plik.

Następnie ponownie uruchom serwer MySQL i zaloguj się.

$ sudo service mysql restart
$ mysql -u root -p

Po zalogowaniu spłucz uprawnienia i ustaw nowe hasło:

Przywileje spłukiwane;
Zmień użytkownika „root@localHost” zidentyfikowane przez „hasło”;

Upewnij się, aby zastąpić powyższe polecenie bezpiecznym hasłem.

Po zakończeniu edytuj mój.plik CNF i usuń dodany wcześniej wpis.

Uruchom ponownie serwer MySQL i zaloguj się za pomocą nowego hasła.

Rozwiązanie 3 - Rozpocznij MySQL w trybie awaryjnym

MySQL zapewnia narzędzie MySqld_safe do uruchamiania serwera MySQL. To narzędzie pozwala nam określić bezpieczne funkcje podczas uruchamiania i ponownego uruchomienia serwera w celu diagnozowania błędów.

Zacznij od zatrzymania serwera MySQL.

$ sudo service mysql stop

Następnie rozpocznij MySQL bez uwierzytelnienia jako;

$ mysqld_safe-Skip-Grant-Stable &

Polecenie uruchomi serwer w tle jako zadanie.

Po uruchomieniu demona (z wyłączonym uwierzytelnianiem) otwórz nowy terminal i uruchom:

$ mysql -u root -p

Powyższe polecenie powinno pozwolić na zalogowanie się bez hasła.

Po zalogowaniu się spłucz uprawnienia i ustaw nowe hasło jako:

Przywileje spłukiwane;
Zmień użytkownika „root@localHost” zidentyfikowane przez „hasło”;

Zamknij sesję i uruchom ponownie MySQL.

Teraz zaloguj się na swoim serwerze za pomocą nowego hasła.

Zamknięcie

W tym artykule omówiliśmy trzy główne metody rozwiązywania

„MySQL Access odmówił błędu użytkownika„ root@localhost ””.

Mamy nadzieję, że ten samouczek pomógł ci rozwiązać ten błąd.