Ten angielski komunikat wygląda groźnie, a mówi tylko tyle, że silnik strony nie może dogadać się z bazą danych - dane najczęściej są całe. WordPress to dwie części: pliki, które budują stronę, i baza danych, w której siedzą wpisy, produkty i zamówienia. „Error establishing a database connection” znaczy, że ta pierwsza część nie może połączyć się z drugą. Sama baza zwykle stoi nietknięta - zerwany jest tylko most między nimi.
Poniżej przechodzimy przez naprawę po kolei, bez znajomości kodu. A jeśli w którymś kroku poczujesz, że to nie Twoja bajka - na końcu jest droga na skróty.
Co „error establishing a database connection” naprawdę znaczy
Za każdym razem, gdy ktoś otwiera Twoją stronę, WordPress loguje się do bazy danych: podaje nazwę bazy, użytkownika, hasło i adres serwera. Jeśli którakolwiek z tych rzeczy się nie zgadza albo serwer bazy nie odpowiada - zamiast strony pojawia się ten komunikat. To inny przypadek niż błąd krytyczny, gdzie wysypuje się kod wtyczki lub motywu; tutaj kod jest zdrowy, tylko nie ma z czego czytać.
Najczęstsze przyczyny, w kolejności od najbardziej prawdopodobnej:
- Złe dane logowania do bazy w pliku
wp-config.php- klasyka po przeniesieniu strony na inny hosting, gdy w pliku zostały stare dane - Padnięty albo przeciążony serwer bazy na hostingu - strona działała rano, leży po południu, a Ty nic nie zmieniałeś
- Uszkodzone tabele bazy - np. po nagłym restarcie serwera albo przerwanej aktualizacji
- Wyczerpany limit zasobów na tanim hostingu - ruch urósł, a pakiet został z czasów startu
Krok 1 - zajrzyj na /wp-admin
Otwórz adres swojej strony z dopiskiem /wp-admin. Jeśli zamiast panelu logowania zobaczysz inny komunikat niż na stronie głównej - np. sugestię, że jedna z tabel bazy wymaga naprawy - to cenna wskazówka: połączenie z bazą jest, tylko któraś tabela jest uszkodzona. Wtedy przechodzisz prosto do kroku 2. Jeśli wszędzie widzisz ten sam błąd połączenia, zacznij od kroku 3.
Krok 2 - tryb naprawy bazy danych
WordPress ma wbudowany tryb naprawy uszkodzonych tabel. Włącza się go jedną linijką w pliku wp-config.php (znajdziesz go przez FTP albo menedżer plików w panelu hostingu, w głównym folderze strony):
define( 'WP_ALLOW_REPAIR', true );
Po dodaniu tej linijki wejdź na adres twojadomena.pl/wp-admin/maint/repair.php i kliknij naprawę bazy. WordPress przejdzie po tabelach i poskleja to, co się da.
Ważne: po zakończonej naprawie usuń tę linijkę z pliku. Strona naprawy nie wymaga logowania - dopóki linijka jest w pliku, może na nią wejść każdy, kto zna adres.
Krok 3 - sprawdź dane logowania w wp-config.php
W pliku wp-config.php znajdziesz cztery wpisy: nazwę bazy (DB_NAME), użytkownika (DB_USER), hasło (DB_PASSWORD) i adres serwera bazy (DB_HOST). Otwórz panel hostingu, znajdź sekcję baz danych i porównaj te wartości jedna po drugiej z tym, co widzi hosting.
To najczęstszy winowajca po przeniesieniu strony: na nowym hostingu baza dostaje inną nazwę, innego użytkownika i inne hasło, a w przeniesionym pliku siedzą stare dane. Czasem różni się tylko DB_HOST - na jednym hostingu to localhost, na innym osobny adres serwera bazy, który panel podaje przy szczegółach bazy.
Co pomaga: zanim cokolwiek zmienisz w
wp-config.php, pobierz kopię tego pliku na dysk. Jedna literówka i strona nie wstanie wcale - a z kopią wracasz do punktu wyjścia w minutę. Jeśli nie znasz hasła do bazy, w panelu hostingu zwykle da się je zresetować; nowe hasło wpisujesz wtedy również do pliku.
Krok 4 - gdy wszystko się zgadza, pora na hosting
Dane logowania poprawne, naprawa tabel nic nie zmieniła, a błąd wisi dalej? Wtedy problem jest prawie na pewno po stronie serwera. Sprawdź stronę statusu swojego hostingodawcy (większość ją ma), poszukaj w panelu opcji restartu usług i napisz do supportu proste pytanie: czy serwer bazy danych dla mojego konta działa i czy konto nie przekroczyło limitów zasobów. Na tanich hostingach współdzielonych to częstszy scenariusz, niż się wydaje - i wtedy żadna zmiana w plikach nie pomoże, bo wina leży poza Twoją stroną.
Jeśli błąd pojawia się i znika falami, to też wskazuje na przeciążenie serwera, a nie na Twoją konfigurację. Pokrewna awaria z tej samej półki serwerowej to błąd 500 - diagnozuje się go inaczej, ale bywa, że ma tę samą przyczynę: serwer nie wyrabia.
Czego nie robić
- Nie instaluj WordPressa od nowa - to nie naprawia połączenia z bazą, a łatwo przy tym nadpisać konfigurację, która była o krok od działania
- Nie edytuj
wp-config.phpbez kopii pliku - to plik, od którego zależy cała strona; zmiany rób na spokojnie, po jednej - Nie klikaj na ślepo w phpMyAdmin - usunięcie albo wyczyszczenie tabeli jest nieodwracalne; jeśli już tam zaglądasz, tylko czytaj, nic nie kasuj
Jak nie wrócić do tego za miesiąc
W tej awarii stawką jest baza danych - a więc wszystko, co masz na stronie: treści, klienci, zamówienia. Dlatego pierwszy wniosek po naprawie brzmi: kopia zapasowa WordPress musi obejmować bazę, nie tylko pliki, i musi robić się sama, w rytmie dopasowanym do tego, jak często strona się zmienia. Drugi wniosek: jeśli błąd wracał przez przeciążony hosting, to sygnał, że strona wyrosła ze swojego pakietu.
Można też oddać całość komuś, kto pilnuje tego zawodowo w ramach stałej opieki nad stroną - z kopiami przed każdą zmianą i reakcją na awarie, zanim zdążysz je zauważyć.
Najczęstsze pytania
Czy moje dane są bezpieczne? Prawie zawsze tak - ten błąd oznacza zerwane połączenie z bazą, a nie utratę jej zawartości. Ryzyko pojawia się dopiero przy nerwowych ruchach: reinstalacjach i kasowaniu tabel w phpMyAdmin.
Dlaczego błąd bazy danych pojawił się po przeniesieniu strony?
Bo na nowym hostingu baza ma inną nazwę, użytkownika, hasło albo adres serwera, a w przeniesionym pliku wp-config.php zostały stare dane. Porównanie tych czterech wpisów z panelem hostingu rozwiązuje większość takich przypadków.
Czy ten błąd może zniknąć sam? Może - jeśli przyczyną było chwilowe przeciążenie serwera bazy. Ale to nie powód do spokoju, tylko sygnał ostrzegawczy: przy kolejnym szczycie ruchu wróci.
Ile kosztuje naprawa u specjalisty? Typowa diagnoza plus naprawa to godziny pracy, nie dni. Konkretną kwotę podaję po obejrzeniu strony - zawsze na piśmie, przed rozpoczęciem.
Powiązane: Błąd 500 w WordPress · Kopia zapasowa WordPress · Stała opieka nad stroną