Państwa strona wyświetla już tylko jeden wiersz: „Błąd łączenia się z bazą danych”. WordPress nie mógł otworzyć bazy, w której są Państwa strony, ustawienia i konta. Treści są zwykle nienaruszone: ten poradnik pokazuje, jak ustalić, która z czterech możliwych przyczyn zachodzi, i jak ją usunąć.
wp-config.php. Treści są zwykle nienaruszone.DB_NAME, DB_USER, DB_PASSWORD i DB_HOST z wp-config.php z wartościami w panelu firmy hostingowej.Przy każdym wyświetleniu strony WordPress otwiera połączenie z bazą danych MySQL lub MariaDB, korzystając z czterech informacji zapisanych w wp-config.php, w katalogu głównym strony:
define( 'DB_NAME', 'nazwa_bazy' );
define( 'DB_USER', 'uzytkownik' );
define( 'DB_PASSWORD', 'haslo' );
define( 'DB_HOST', 'localhost' );
„Błąd łączenia się z bazą danych” oznacza, że to połączenie się nie powiodło. Wywołują to cztery przyczyny: dane dostępowe, które już nie pasują, serwer bazy danych zatrzymany lub nieosiągalny, przeciążony serwer albo uszkodzona baza. Kolejne sekcje omawiają je od najłatwiejszej do sprawdzenia po najrzadszą.
Jeśli przyczyną jest serwer, proszę otworzyć zgłoszenie u firmy hostingowej, podając godzinę początku awarii i dokładny komunikat. W tym czasie na stronie nie trzeba niczego zmieniać.
To najczęstsza przyczyna po przeniesieniu strony, zmianie hasła do bazy w panelu firmy hostingowej lub przywróceniu kopii. Proszę porównać cztery wartości z wp-config.php z sekcją baz danych w panelu firmy hostingowej:
DB_NAME i DB_USER: wiele firm hostingowych poprzedza je nazwą konta (konto_wordpress). Prefiks jest częścią nazwy.DB_PASSWORD: w razie wątpliwości proszę ustawić nowe hasło dla użytkownika w panelu i wpisać je w pliku.DB_HOST: localhost u wielu firm hostingowych, ale nie u wszystkich. Niektóre podają nazwę serwera lub adres, czasem z portem (:3306). Dokładna wartość jest w panelu.Hasło zawierające apostrof (') przerywa otaczający je ciąg PHP w wp-config.php. Proszę poprzedzić apostrof ukośnikiem wstecznym (\') albo wybrać hasło bez apostrofu.
WordPress wyświetla ogólny komunikat. MySQL natomiast mówi dokładnie, co jest nie tak. Oto dwa sposoby, aby to sprawdzić z wartościami z wp-config.php:
mysql -h localhost -u uzytkownik -p nazwa_bazy
Z WP-CLI polecenie wp db check czyta bezpośrednio wp-config.php i sprawdza tabele z tymi danymi dostępowymi.
Proszę umieścić ten plik w katalogu głównym strony pod trudną do odgadnięcia nazwą, otworzyć go w przeglądarce, a potem od razu go usunąć: zawiera hasło do bazy.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$polaczenie = @mysqli_connect('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');
echo $polaczenie ? 'Połączenie udane' : 'Błąd: ' . mysqli_connect_error();
Pierwszy wiersz ma znaczenie: od PHP 8.1 nieudane połączenie domyślnie zgłasza wyjątek, a strona pozostałaby biała zamiast wyświetlić komunikat MySQL.
| MySQL odpowiada | Przyczyna | Rozwiązanie |
|---|---|---|
Access denied for user 'uzytkownik'@'localhost' (using password: YES) | Para użytkownik i hasło jest odrzucana albo użytkownik nie ma prawa łączyć się z tego hosta. | Ustawić hasło na nowo w panelu i wpisać je w DB_PASSWORD; sprawdzić DB_USER. |
Access denied for user 'uzytkownik'@'localhost' to database 'nazwa_bazy' | Użytkownik się łączy, ale nie ma uprawnień do tej bazy. | Przypisać użytkownika do bazy w panelu firmy hostingowej, ze wszystkimi uprawnieniami. |
Unknown database 'nazwa_bazy' | Połączenie działa, ale żadna baza nie nosi tej nazwy. | Poprawić DB_NAME, łącznie z prefiksem; sprawdzić, czy baza nadal istnieje. |
Too many connections | Serwer osiągnął maksymalną liczbę jednoczesnych połączeń. | Zob. sekcję o błędzie, który pojawia się i znika. |
Connection refused lub No such file or directory (kod 2002 w PHP), Can't connect to MySQL server (w wierszu poleceń) | Pod tym adresem nie odpowiada żaden serwer: serwer jest zatrzymany albo DB_HOST jest błędny. | Sprawdzić DB_HOST w panelu; w przeciwnym razie powiadomić firmę hostingową. |
Połączenie udane | Dane dostępowe są prawidłowe. | Szukać przyczyny w samej bazie: następna sekcja. |
Gdy dane dostępowe są prawidłowe, ale tabele są uszkodzone, publiczna strona wyświetla ten sam komunikat o błędzie połączenia, a panel administracyjny dokładniejszy: „Jedna lub więcej tabel w bazie danych jest niedostępnych. Baza danych może musieć zostać naprawiona.” WordPress ma do tego narzędzie. Proszę dodać ten wiersz do wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Następnie proszę otworzyć https://www.panstwa-strona.com/wp-admin/maint/repair.php i uruchomić „Napraw bazę danych”. Proszę usunąć ten wiersz zaraz po zakończeniu naprawy: dopóki jest w pliku, ta strona jest dostępna dla każdego, bez logowania.
Przed naprawą proszę wyeksportować bazę (wp db export lub eksport w phpMyAdmin). Jeśli naprawa się nie powiedzie, firma hostingowa może przywrócić bazę ze swoich kopii zapasowych.
Błąd, który pojawia się o określonych godzinach i znika sam, wskazuje raczej na przeciążony serwer niż na błędne ustawienie. Najczęstsze przyczyny:
wp-login.php lub xmlrpc.php, widoczne w logach dostępu firmy hostingowej.Rozwiązania: zablokować nadmierne próby logowania, zainstalować pamięć podręczną stron, wyłączyć xmlrpc.php, jeśli nie używa go żadna aplikacja, i poprosić firmę hostingową o logi z okresu błędu.
Z Serenity by Simafri tworzymy Państwa profesjonalną stronę internetową, hostujemy ją, zabezpieczamy i utrzymujemy aktualną. Państwo piszą do nas, my zajmujemy się wszystkim. Nazwa domeny i poczta firmowa w cenie.
Zwykle nie. Komunikat oznacza, że WordPress nie mógł połączyć się z bazą, a nie że baza zniknęła. Jeśli phpMyAdmin nadal pokazuje tabele strony, Państwa strony, wpisy i ustawienia są na miejscu.
Ponieważ nowy hosting używa innych danych dostępowych do bazy: nazwy bazy, użytkownika, hasła, a czasem adresu serwera. Proszę wpisać wartości z nowego panelu w DB_NAME, DB_USER, DB_PASSWORD i DB_HOST w pliku wp-config.php.
Ponowna instalacja WordPressa nie zmienia ani danych dostępowych w wp-config.php, ani stanu serwera bazy danych, a to one wywołują ten komunikat. Najpierw proszę przetestować dane dostępowe, potem stan serwera, a na końcu integralność tabel.
Raczej z przeciążenia niż z ustawień: zbyt wielu jednoczesnych połączeń, szczytu ruchu lub robotów. Logi dostępu i zużycie zasobów w panelu firmy hostingowej pokazują, co działo się w chwili błędu.
Simafri
Porozmawiajmy o Państwa projekcie
Proszę powiedzieć nam w kilku słowach, czego Państwo potrzebują: odpowiemy szybko.
Dziękujemy! Państwa zapytanie zostało wysłane. Wkrótce się odezwiemy.
Wolą Państwo e-mail? Proszę napisać do nas na support@simafri.com.