Przejdź do treści
codecollab.pl
§ Blog wordpress error establishing

„Error establishing a database connection” w WordPress - jak naprawić

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

Autor Krystian Kacik Data Czas czytania 5 min

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:

  1. 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
  2. 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ś
  3. Uszkodzone tabele bazy - np. po nagłym restarcie serwera albo przerwanej aktualizacji
  4. 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.php bez 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.

Wyślij zakres - wycena 24h


Powiązane: Błąd 500 w WordPress · Kopia zapasowa WordPress · Stała opieka nad stroną

§ Wycena 24h

Twój sklep zwalnia albo wygląda staro, a nie wiesz, od czego zacząć?

Opisz zakres w dwóch zdaniach albo podeślij link. Wskażę, co poprawić najszybciej, a wycenę dostajesz na piśmie w 24 godziny - bez „od X zł".

Wyślij zakres - wycena 24h