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.
Po otwarciu pliku i próbie jego edycji (Visual Studio Code) zobaczysz ten ekran:
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.
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:
- Zaloguj się do swojego konta phpMyAdmin.
- Kliknij zakładkę „Konta użytkowników”.
- Wybierz w katalogu głównym użytkownika (lub tym, w którym chcesz zmienić hasło)
- Kliknij łącze Edytuj uprawnienia
- Tutaj możesz zobaczyć listę uprawnień nadanych użytkownikowi.
- Upewnij się, że użytkownik otrzymał niezbędne uprawnienia dostępu do bazy danych.
- Jeśli użytkownik nie posiada wymaganych uprawnień, możesz je nadać, zaznaczając odpowiednie checkboxy i klikając przycisk „Idź”.
- Po przyznaniu wymaganych uprawnień spróbuj ponownie uzyskać dostęp do bazy danych, aby sprawdzić, czy problem został rozwiązany.
Należy sprawdzić ustawienia w podświetlonym obszarze:
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.
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
Jako jeden ze współzałożycieli Codeless wnoszę doświadczenie w tworzeniu WordPressa i aplikacji internetowych, a także doświadczenie w efektywnym zarządzaniu hostingiem i serwerami. Pasja do zdobywania wiedzy oraz entuzjazm do konstruowania i testowania nowych technologii napędzają mnie do ciągłego wprowadzania innowacji i doskonalenia.