„Błąd nawiązywania połączenia z bazą danych” (Error establishing a database connection) oznacza, że WordPress nie może dogadać się z serwerem MySQL. Trzy przyczyny odpowiadają za niemal wszystkie przypadki: nieprawidłowe dane dostępowe w wp-config.php, niedostępny lub przeciążony serwer bazy oraz uszkodzone tabele. Sprawdza się je w tej właśnie kolejności.
Krok 1: dane dostępowe w wp-config.php
Pobierz przez FTP plik wp-config.php z katalogu strony i znajdź cztery linie:
define( 'DB_NAME', 'nazwa_bazy' );
define( 'DB_USER', 'uzytkownik' );
define( 'DB_PASSWORD', 'haslo' );
define( 'DB_HOST', 'localhost' );
Porównaj je z danymi w panelu hostingu (sekcja „Bazy danych”). Ten błąd pojawia się nagminnie po przeniesieniu strony na inny hosting - na nowym serwerze baza ma inną nazwę i hasło, a w pliku zostały stare. Uwaga na DB_HOST: najczęściej localhost, ale część hostingów używa dedykowanego adresu (np. mysql.twojhosting.pl albo 127.0.0.1) - właściwą wartość podaje panel lub mail powitalny.
Szybki test poprawności danych: w panelu hostingu otwórz phpMyAdmin i zaloguj się użytkownikiem bazy z wp-config. Wejście działa = dane są dobre, problem leży dalej.
Krok 2: czy serwer bazy w ogóle działa
- Sprawdź inne strony na tym samym koncie - jeśli wszystkie pokazują ten sam błąd, to awaria lub przeciążenie serwera MySQL po stronie hostingu. Zajrzyj na stronę statusu dostawcy i zgłoś ticket; samodzielnie nic tu nie naprawisz.
- Błąd pojawia się falami, przy większym ruchu - baza dostaje limit zasobów i odcina połączenia. Winne bywają ciężkie wtyczki statystyk, brak cache albo boty. Włącz cache (np. LiteSpeed Cache - co daje, opisujemy w tekście o LiteSpeed), a jeśli to nie pomaga - potrzebny mocniejszy pakiet.
- Po dużym imporcie/aktualizacji - jednorazowe zdarzenie mogło ubić proces MySQL; na hostingu współdzielonym wstaje sam w ciągu minut.
Krok 3: naprawa uszkodzonych tabel
Jeżeli strona pokazuje błąd, ale wp-admin wyświetla komunikat o konieczności naprawy bazy - tabele są uszkodzone (np. po twardym restarcie serwera). WordPress ma wbudowane narzędzie:
- W
wp-config.phpdodaj linię:define( 'WP_ALLOW_REPAIR', true ); - Otwórz adres
https://twojadomena.pl/wp-admin/maint/repair.phpi uruchom „Napraw bazę danych”. - Po zakończeniu usuń dodaną linię - strona naprawy jest dostępna bez logowania.
Alternatywnie w phpMyAdmin zaznacz tabele i wybierz operację „Napraw tabelę”, a na hostingu z SSH i WP-CLI - wp db repair.
Gdy nic nie pomaga: kopia zapasowa
Jeśli baza jest uszkodzona głębiej (znikające tabele, błędy przy naprawie), najszybszą drogą jest przywrócenie wczorajszej kopii bazy z panelu hostingu. Dlatego automatyczny, codzienny backup bazy to niepodlegająca negocjacjom cecha hostingu - co dokładnie powinien obejmować, wyjaśniamy w tekście o kopiach zapasowych.
Najczęstsze pytania
Strona działa, ale co kilka minut „gubi” bazę na chwilę - dlaczego?
To limit równoczesnych połączeń albo zasobów MySQL na koncie współdzielonym. Ogranicz zapytania (cache!), wyłącz wtyczki odpytujące bazę przy każdym wejściu, a przy braku poprawy - zmień pakiet lub dostawcę; przy porównywaniu pomoże nasz ranking hostingów.
Czy ten błąd oznacza utratę danych?
Zwykle nie - najczęściej to problem z połączeniem, a dane leżą nietknięte. Utrata grozi dopiero przy fizycznym uszkodzeniu tabel bez kopii zapasowej.
Zmieniłem hasło do bazy w panelu i strona padła - co się stało?
Panel zmienia hasło w MySQL, ale nie w wp-config.php - musisz wpisać nowe hasło także tam. To najczęstsza samodzielnie wywołana wersja tego błędu.
Podsumowanie
wp-config - dostępność serwera - naprawa tabel: trzy kroki, od najczęstszej przyczyny do najrzadszej. Miej pod ręką dane z panelu hostingu i aktualną kopię bazy, a błąd połączenia pozostanie kwadransowym incydentem, nie katastrofą.