Błąd połączenia z bazą danych WordPress, jak to naprawić
Zamiast strony pojawia się krótki komunikat: „Error establishing a database connection", czyli błąd połączenia z bazą danych. Cała strona znika, panel administracyjny też przestaje działać, a Ty nie wiesz, czy to drobiazg, czy właśnie straciłeś dane. Uspokójmy od razu: w większości przypadków dane są całe, a problem leży w połączeniu między WordPressem a bazą, nie w samej treści. Poniżej tłumaczymy, co ten błąd znaczy, od czego się zaczyna i jak go naprawić krok po kroku.
Co oznacza „Error establishing a database connection"
WordPress trzyma całą treść (wpisy, strony, ustawienia, użytkowników) w bazie danych MySQL. Przy każdym wejściu łączy się z nią, używając danych zapisanych w pliku wp-config.php. Ten komunikat oznacza, że połączenie się nie udało: albo dane logowania do bazy są błędne, albo serwer bazy nie odpowiada, albo sama baza jest uszkodzona. Strona nie ma skąd wziąć treści, więc pokazuje goły błąd.
Najczęstsze przyczyny
- Błędne dane dostępowe w wp-config.php. Zmienione hasło do bazy, nazwa bazy albo użytkownika, a plik
wp-config.phpwciąż ma stare. Bardzo częste zwłaszcza po migracji strony na inny serwer. - Serwer bazy danych przeciążony lub chwilowo padł. Przy skoku ruchu albo na współdzielonym hostingu baza potrafi odmówić kolejnych połączeń. Wtedy błąd bywa migający: raz jest, raz go nie ma.
- Przekroczony limit połączeń do bazy. Tani hosting ogranicza liczbę jednoczesnych połączeń. Po jego wyczerpaniu każde kolejne wejście dostaje ten błąd.
- Uszkodzona baza danych. Nagłe wyłączenie serwera albo błąd zapisu może uszkodzić tabele. WordPress łączy się, ale nie potrafi odczytać danych.
- Ślad włamania lub przeciążenia przez boty. Masowe, złośliwe zapytania potrafią zatkać bazę tak, że wygląda to jak awaria.
Szybka diagnoza w 30 sekund
Sprawdź jedną rzecz: czy panel administracyjny pod adresem /wp-admin pokazuje ten sam błąd, czy inny. Jeśli w panelu widzisz komunikat w stylu „baza danych może wymagać naprawy", to znak, że baza jest uszkodzona (przejdź do naprawy tabel). Jeśli i strona, i panel pokazują identyczny błąd połączenia, problem jest najczęściej w danych dostępowych albo po stronie serwera bazy.
Jak naprawić krok po kroku
- Sprawdź dane w wp-config.php. W pliku
wp-config.phpporównajDB_NAME,DB_USER,DB_PASSWORDiDB_HOSTz tym, co pokazuje panel hostingu w sekcji baz danych. Po migracjiDB_HOSTbywa inny niżlocalhost, hosting podaje właściwą wartość. To najczęstsza i najszybsza naprawa. - Zapytaj, czy serwer MySQL działa. Jeśli dane się zgadzają, sprawdź w panelu hostingu status bazy albo zapytaj wprost supportu, czy serwer MySQL nie jest przeciążony lub w awarii. Jeśli błąd miga, to najczęściej to.
- Spróbuj naprawy tabel. Gdy podejrzewasz uszkodzoną bazę, dodaj do
wp-config.phpliniędefine('WP_ALLOW_REPAIR', true);, a następnie wejdź na adrestwojadomena.pl/wp-admin/maint/repair.phpi uruchom naprawę. Po zakończeniu koniecznie usuń tę linię z pliku, bo strona naprawy jest wtedy dostępna publicznie. - Sprawdź obciążenie i boty. Jeśli baza pada pod obciążeniem, zerknij w statystyki ruchu. Nagły skok z jednego kraju albo na jeden adres to często boty. Ograniczenie ich (albo warstwa ochronna) zdejmuje presję z bazy.
- Odtwórz bazę z kopii. Jeśli tabele są poważnie uszkodzone, najczystszym wyjściem jest przywrócenie bazy z kopii zapasowej. Jeśli robisz regularne kopie, to kwestia kilku minut.
Jeśli po naprawie strona wstaje, ale działa wolno albo baza jest zaśmiecona, warto ją potem uporządkować, o tym piszemy w osobnym wpisie o czyszczeniu bazy WordPress.
Kiedy zadzwonić po pomoc
Jeśli dane w wp-config.php się zgadzają, hosting twierdzi, że baza działa, a błąd zostaje, albo tabele są uszkodzone i nie masz świeżej kopii, to moment, żeby nie eksperymentować dalej na żywej stronie. Zajmujemy się dokładnie takimi awariami, gdy strona nie działa: diagnozujemy bezpłatnie, pracujemy na kopii i odzyskujemy stronę bez ryzyka, że przy okazji zniknie treść.