Co robić gdy wyskoczy Error Establishing a Database Connection?

Obrazek na licencji CC0

Jeśli wchodzicie na mojego bloga stosunkowo regularnie, to kilka dni temu mogliście mieć z tym problem i zamiast sprawnego interfejsu można było zaobserwować białe tło z komunikatem o problemie w nawiązaniu połączenia z bazą danych, który brzmiał dokładnie „Error Establishing a Database Connection”. Problem ten nie leżał po mojej stronie, lecz u właściciela hostingu, z jakiego korzystam. Taki błąd może również wystąpić po naszej ingerencji w ustawienia serwera, pliki strony bądź też potrafi zaistnieć przy próbie zawirusowania czy zablokowania naszej strony przez osoby trzecie.
W tym artykule postaram się wyjaśnić czym konkretnie jest ten błąd i w jaki sposób powinniśmy przeprowadzić analizę, by znaleźć przyczynę problemu. Jeżeli prowadzisz bloga opartego na silniku WordPress, to na końcu tej publikacji możesz znaleźć skrypt, który pomoże Ci zdiagnozować gdzie szukać rozwiązania.

Czym właściwie jest ten błąd?

Błąd ten pojawia się w momencie, kiedy serwer ma problemy w nawiązaniu połączenia z bazą danych bądź też łączy się poprawnie, lecz nie może utrzymać takiego połączenia na tyle, by odczytywać konkretne rekordy z bazy. Problem tego typu najczęściej pojawia się, gdy wprowadzamy jakieś zmiany w ustawieniach bądź plikach na serwerze czy też w samej bazie danych MySQL. Aktualizacja wtyczek czy innych modyfikacji zewnętrznych, z jakich korzystamy na naszej stronie, również przyczynia się do nadpisania danych, co może skończyć się wystąpieniem tego typu błędu. Zawsze warto wykonywać backup naszej strony, by nawet w najbardziej problematycznych przypadkach udało nam się przywrócić ją do życia, zachowując przy tym stosunkowo aktualne publikacje.

Jak znaleźć przyczynę problemu?

Jeśli na każdej z naszych podstron występuję opisywany tutaj błąd to pierwszym krokiem, jaki należy zrobić jest sprawdzenie pliku konfiguracyjnego np. config.php czy wp-config.php jak to się ma w silnikach WordPress. Sprawdzamy tam, czy dane logowania do bazy danych zgadzają się z tymi zapisanymi na serwerze. W przypadku gdy prowadzisz stronę opartą na CMS WordPress, to polecam pobrać przygotowany przeze mnie skrypt dostępny tutaj i wrzucenie go na serwer do folderu wp-admin. Od teraz wchodząc na adres http://twoja_strona.pl/wp-admin/test-komunikacji.php będziesz mógł od razu dowiedzieć się, czy wprowadzone przez Ciebie dane są zapisane poprawnie. Jeśli i tu wszystko będzie łączyło się bez problemu, powinniśmy sprawdzić, czy możemy zalogować się do bazy danych poprzez phpMyAdmin i czy wszystkie tabele się zgadzają. Przede wszystkim sprawdźmy, czy w tabeli options wartość siteurl posiada wprowadzony adres naszej strony, zaczynając od http://. Jeżeli i tu wszystko wydaje się poprawne, to raczej problem nie występuje po naszej stronie, a po stronie usługodawcy hostingu, u którego posiadamy wykupioną usługę. Powinniśmy więc napisać do supportu wiadomość z zapytaniem o to, czy mamy poprawny dostęp do usługi MySQL oraz, czy sama usługa działa poprawnie. W odpowiedzi otrzymamy jednoznaczną informację czy błędu mamy nadal szukać u siebie, czy też aktualnie trwają prace po stronie usługodawcy i jedyną możliwością rozwiązania będzie oczekiwanie, aż technicy poradzą sobie z problemem. Jeśli okaże się, że błąd leży jednak po naszej stronie to powinniśmy albo przywrócić kopię zapasową strony, albo zlecić to komuś, kto ma odpowiednią wiedzę, dzięki której postawi naszą stronę na nogi.