Błąd 1045 (28000) odmowa dostępu dla użytkownika root localhost (rozwiązany)

Opublikowany: 2023-03-14

„Błąd 1045 (28000) odmowa dostępu dla użytkownika root localhost” to często spotykany błąd podczas próby uzyskania dostępu do MySQL za pośrednictwem CMS WordPress. Jednak ten błąd może również wystąpić w innych sytuacjach.

Występujący błąd sugeruje, że użytkownik „root” nie posiada wymaganych uprawnień dostępu do bazy danych z hosta lokalnego. Przyczyn tego problemu może być wiele, w tym nieprawidłowe hasło, niepoprawna nazwa użytkownika lub nieodpowiednie uprawnienia przyznane użytkownikowi.

Oto kilka kroków, które możesz wykonać, aby rozwiązać ten błąd

1. Sprawdź nazwę użytkownika i hasło

Upewnij się, że używasz poprawnej nazwy użytkownika i hasła. Nazwa użytkownika powinna brzmieć „root”, a hasło powinno być takie, jakie ustawiłeś podczas procesu instalacji.

Jeśli używasz WordPressa, musisz sprawdzić plik wp-config.php . Plik można znaleźć w głównym folderze WordPressa.

wp-config.php

Po otwarciu pliku i próbie jego edycji (Visual Studio Code) zobaczysz ten ekran:

edytuj nazwę użytkownika i hasło wp-config.php bazy danych

Sprawdź DB_USER i DB_PASSWORD, czy mają poprawne wartości

 /** Database username */ define( 'DB_USER', 'root' );
 /** Database password */ define( 'DB_PASSWORD', 'root' );

Jeśli nie wiesz, jaka jest twoja nazwa użytkownika i hasło do bazy danych, przejdź do cPanel> Baza danych> Mysql i sprawdź to.

jak uzyskać dostęp do bazy danych mysql za pomocą cpanel

Aby zmienić hasło do bazy danych WordPress, postępuj zgodnie z samouczkiem: Zmień hasło WordPress w PHPMyAdmin

2. Sprawdź, czy użytkownik ma wymagane uprawnienia

Sprawdź, czy użytkownik „root” ma niezbędne uprawnienia dostępu do bazy danych.

Krok 1: Najpierw musisz otworzyć terminal i napisać ssh [email protected]

 ssh [email protected]

Krok 2: Po pomyślnym zalogowaniu zapisz to polecenie

 mysql -uroot -p

Krok 3: Po dodaniu hasła możesz rozpocząć dodawanie polecenia z monitu mysql

Krok 4: Możesz użyć następującego polecenia, aby sprawdzić uprawnienia:

 SHOW GRANTS FOR 'root'@'localhost';

Spowoduje to wyświetlenie listy uprawnień użytkownika „root” na serwerze „localhost”. Jeśli użytkownik nie ma niezbędnych uprawnień, możesz nadać mu następujące polecenie:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

Uwaga: Zastąp „hasło” hasłem, którego chcesz użyć.

Aby sprawdzić, czy użytkownik ma wymagane uprawnienia przy użyciu phpMyAdmin, wykonaj następujące kroki:

  1. Zaloguj się do swojego konta phpMyAdmin.
  2. Kliknij zakładkę „Konta użytkowników”.
  3. Wybierz w katalogu głównym użytkownika (lub tym, w którym chcesz zmienić hasło)
  4. Kliknij łącze Edytuj uprawnienia
  5. Tutaj możesz zobaczyć listę uprawnień nadanych użytkownikowi.
  6. Upewnij się, że użytkownik otrzymał niezbędne uprawnienia dostępu do bazy danych.
  7. Jeśli użytkownik nie posiada wymaganych uprawnień, możesz je nadać, zaznaczając odpowiednie checkboxy i klikając przycisk „Idź”.
  8. Po przyznaniu wymaganych uprawnień spróbuj ponownie uzyskać dostęp do bazy danych, aby sprawdzić, czy problem został rozwiązany.
Link do uprawnień do edycji phpmyadmin

Należy sprawdzić ustawienia w podświetlonym obszarze:

uprawnienia użytkownika phpmyadmin

Uwaga: Jeśli nie możesz nadać niezbędnych uprawnień przez phpMyAdmin, być może będziesz musiał uzyskać dostęp do interfejsu wiersza poleceń MySQL, aby nadać uprawnienia.

3. Sprawdź stan serwera MySQL

Upewnij się, że serwer MySQL jest uruchomiony. Możesz sprawdzić status serwera, uruchamiając następujące polecenie po zalogowaniu w powłoce serwera:

 systemctl status mysql

Jeśli serwer nie działa, uruchom go za pomocą następującego polecenia:

 systemctl start mysql

Aby sprawdzić status Mysql na hostingu cPanel, musisz zalogować się do pulpitu nawigacyjnego hostingu. Innym sposobem jest bezpośredni kontakt z dostawcą usług hostingowych.

4. Sprawdź, czy serwer MySQL nasłuchuje na właściwym porcie

Upewnij się, że serwer MySQL nasłuchuje na właściwym porcie. Domyślny port dla MySQL to 3306 .

Aby sprawdzić, czy serwer MySQL nasłuchuje na właściwym porcie, możesz wykonać następujące kroki:

1. Otwórz terminal lub wiersz poleceń na swoim serwerze, na którym jest zainstalowany MySQL.

2. Połącz się z serwerem MySQL za pomocą klienta wiersza poleceń. Możesz użyć następującego polecenia, zastępując username i password rzeczywistymi poświadczeniami MySQL:

 mysql -u username -p

3. Po nawiązaniu połączenia z serwerem MySQL wpisz następujące polecenie, aby wyświetlić numer portu, na którym nasłuchuje serwer MySQL:

SHOW VARIABLES LIKE 'port';

To polecenie wyświetli numer portu, na którym nasłuchuje serwer MySQL. Domyślnie MySQL nasłuchuje na porcie 3306.

Możesz również sprawdzić numer portu w pliku konfiguracyjnym MySQL.

Plik konfiguracyjny ma zwykle nazwę my.cnf lub my.ini i znajduje się w katalogu instalacyjnym MySQL.

Aby znaleźć katalog instalacyjny MySQL, możesz wykonać następujące kroki:

1. Otwórz terminal lub wiersz poleceń na swoim serwerze, na którym jest zainstalowany MySQL.

2. Wpisz następujące polecenie, aby sprawdzić, czy jest zainstalowany MySQL:

which mysql

Jeśli zainstalowany jest MySQL, to polecenie wyświetli ścieżkę do pliku wykonywalnego mysql , w przeciwnym razie pojawi się komunikat o błędzie.

Jeśli MySQL jest zainstalowany, możesz ponownie użyć polecenia which , aby znaleźć katalog instalacyjny. Wpisz następujące polecenie, zastępując /path/to/mysql ścieżką do pliku wykonywalnego mysql :

 which mysql | xargs readlink -f | sed "s|bin/mysql$||"

To polecenie wyświetli katalog instalacyjny MySQL. Możesz użyć tego katalogu do zlokalizowania pliku konfiguracyjnego MySQL ( my.cnf lub my.ini ) oraz innych plików i katalogów MySQL.

Alternatywnie, jeśli masz dostęp do klienta MySQL, możesz również wykonać następujące zapytanie, aby znaleźć katalog instalacyjny MySQL:

 SELECT @@basedir;

Spowoduje to wyświetlenie katalogu instalacyjnego MySQL.

Możesz także sprawdzić plik konfiguracyjny MySQL, aby zweryfikować numer portu, na którym MySQL jest skonfigurowany do nasłuchiwania. Plik konfiguracyjny ma zwykle nazwę my.cnf lub my.ini i znajduje się w katalogu instalacyjnym MySQL.

port my.cnf i sql

Otwórz plik konfiguracyjny za pomocą edytora tekstu i wyszukaj parametr portu. Wartość tego parametru określa numer portu, na którym MySQL jest skonfigurowany do nasłuchiwania.

Jeśli serwer MySQL nie nasłuchuje na właściwym porcie, możesz zmienić parametr portu w pliku konfiguracyjnym i zrestartować serwer MySQL, aby zastosować zmiany.

Nie zapomnij zrestartować usługi Mysql, jeśli zmieniłeś port:

 service mysql restart

5. Zresetuj hasło roota

Jeśli żaden z powyższych kroków nie działa, możesz spróbować zresetować hasło roota. Możesz to zrobić, wykonując czynności opisane w tym artykule:

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Uwaga: Ta metoda wymaga dostępu do pliku konfiguracyjnego MySQL i możliwości ponownego uruchomienia serwera MySQL.

Być może zainteresuje Cię lektura:

Jak naprawić błąd „Instalacja nie powiodła się: nie można utworzyć katalogu” w WordPress

Jak naprawić WordPress, który utknął w trybie konserwacji (ROZWIĄZANY)

Jak naprawić błąd „Aktualizacja nie powiodła się. Odpowiedź nie jest prawidłową odpowiedzią JSON”

Jak naprawić „Błąd podczas nawiązywania połączenia z bazą danych”? – 2023