Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

Czasem się może zdarzyć, że podczas operacji (zapisu) w bazie danych coś pójdzie nie tak – nie zdarza się to może zbyt często (a przynajmniej nie powinno), ale zawsze może się zdarzyć – teoretycznie wystarczy awaria serwera, jakaś usterka dysku/systemu plików (lub np. brak miejsca na serwerze z bazą danych), błąd po stronie skryptu, czy po prostu pech…

Taka sytuacja oczywiście może mieć też miejsce w przypadku WordPressa, ale tu możemy posłużyć się wbudowanym narzędziem do naprawy (i optymalizacji) bazy danych, które wprawdzie/zapewne nie naprawi jakiś bardziej poważnych awarii (i nie zastąpi regularnych kopii zapasowych), to czasem w zupełności wystarczy, o czym mógł wczoraj przekonać się mój znajomy, któremu w ten sposób w kilkanaście sekund (dosłownie!) podniosłem stronę po nieudanej aktualizacji.

WordPress i wbudowana naprawa bazy danych

Chyba gdzieś od wersji 3.9 w WordPressie pojawiło się narzędzie do naprawy i optymalizacji bazy danych – nawet jeśli do tej pory nie mieliście okazji z niego korzystać, to być może kojarzycie coś podobnego, gdy po aktualizacji WordPressa do nowej wersji pojawia Wam się ekran z prośbą o aktualizacje bazy danych.

Narzędzie (plik PHP) znajduje się w katalogu:

/wp-admin/maint/repair.php

Natomiast próba wywołania/uruchomienia tego pliku w standardowej konfiguracji WordPressa powinna zakończyć się takim ekranem:

Aby możliwe było użycie skryptu do naprawy problemów w bazie danych na tej stronie, proszę dodać poniższy wiersz do pliku wp-config.php. Kiedy to zrobisz, odśwież tę stronę.

Jest to działanie jak najbardziej poprawne, i jak można przeczytać na powyższym komunikacie – najpierw musimy do pliku konfiguracyjnego WordPressa (wp-config.php) dodać jedną linijkę:

define('WP_ALLOW_REPAIR', true);

Ja zazwyczaj dodatkowe wpisy do tego pliku dodaje tuż nad linijką:

/* That's all, stop editing! Happy blogging. */

Po tej modyfikacji wystarczy wejść na stronę:

[adres_naszej_strony]/wp-admin/maint/repair.php

Np. w przypadku strony WebInsider.pl będzie to:

https://WebInsider.pl/wp-admin/maint/repair.php

W tym momencie pojawią się 2 opcje do wyboru – naprawa, lub naprawa i optymalizacja:

Naprawa:

WordPress może automatycznie wyszukać typowe problemy z bazą danych i naprawić je. Naprawa może chwilę potrwać więc prosimy o cierpliwość.

Naprawa i optymalizacja:

WordPress może także zoptymalizować bazę danych. Skutkuje to poprawą wydajność w niektórych sytuacjach. Naprawa i optymalizacja bazy danych może zająć dużo czasu, a dostęp do bazy zostanie zablokowany na czas optymalizacji.

Pamiętajcie by wcześniej zrobić kopie zapasową bazy danych – nawet jeśli jest to naprawa uszkodzonej bazy, to zawsze może pójść coś nie tak, i uszkodzenia mogą być jeszcze większe.

W większości przypadków nie ma znaczenia która opcję wybierzecie, cała operacja powinna potrwać maksymalnie kilka-kilkanaście sekund:

Naprawa została ukończona. Proszę usunąć następujące linijki z pliku wp.config.php, aby zapobiec użyciu tej strony przez nieupoważnione osoby.

Po tej operacji jest spora szansa, że Wasza strona ponownie zacznie działać prawidłowo, choć jak napisałem na wstępie – jest to naprawa automatyczna, a więc naprawi tylko drobniejsze (bardziej oczywiste) usterki, głównie wynikające z uszkodzenia samej struktury bazy, czy też błędnego jej oznaczenia jako np. w użyciu, i w niektórych przypadkach niezbędne mogą być dalsze prace, w tym przywrócenie bazy z kopii zapasowej.

Na koniec pamiętajcie by usunąć dodaną wcześniej do pliku wp-config.php linijkę, lub przynajmniej zakomentować ją, dodając na początku znak #:

#define('WP_ALLOW_REPAIR', true);

Inne systemy, inne CMSy

Oczywiście jest to procedura dostępna w sytuacji gdy korzystamy z WordPressa. Inne skrypty czy CMSy mogą mieć własne wbudowane rozwiązania, bądź nie mieć ich w cale – ale tu odsyłam Was do dokumentacji, w której powinniście mieć tego typu informacje.

Uniwersalna naprawa bazy danych MySQL

Mogę chyba też zaryzykować, że jest duża szansa, że korzystacie z bazy danych MySQL – w takim przypadku możecie podobny efekt jaki daje wbudowane w WordPressa narzędzie uzyskać pracując bezpośrednio z bazą danych.

Jeśli korzystacie z VPSa (np. w HitMe, DigitalOcean czy e24cloud) to możecie spróbować naprawić bazę danych bezpośrednio z konsoli za pomocą polecenia:

mysqlcheck -u UŻYTKOWNIK --password=HASLO --auto-repair --check --databases nazwa_bazy_danych

Np.:

mysqlcheck -u root --password=WebInsiderPL --auto-repair --check --databases webinsider01

Możecie też naprawić wszystkie bazy na danym serwerze, nawet jeśli rzadko kiedy jest taka potrzeba, to warto wiedzieć, że i taka możliwość istnieje:

mysqlcheck -u UŻYTKOWNIK --password=HASLO --auto-repair --check --databases nazwa_bazy_danych --all-databases

PhpMyAdmin

Jeśli macie dostęp do PhpMyAdmin (standard w przypadku hostingów współdzielonych, np. Kylos.pl) to po zalogowaniu się do PhpMyAdmin możecie spróbować naprawić wybrane/wszystkie tabele w bazie danych bezpośrednio z menu:

Lub skorzystać z polecenia SQL:

REPAIR TABLE nazwa_tabeli

Np.:

REPAIR TABLE `wp_commentmeta` , `wp_comments` , `wp_postmeta` , `wp_posts`

Kopia zapasowa to podstawa

Wiem, że już o tym pisałem, i to nawet w tym wpisie, ale jeśli chodzi o kopie zapasowe będę powtarzał to do znudzenia – pamiętajcie by je robić, i testować, bo nie raz zdarzyło mi się pomagać w sytuacji, gdy kopie zapasowe niby były wykonywane, ale nikt wcześniej nie sprawdził, czy wykonują się one poprawnie, i czy da się coś z nimi zrobić (przynajmniej bez kombinowania, bo w przypadku awarii zazwyczaj na to już nie ma czasu).

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale jej też należy się zniżka 80% na skięgowość wFirma dla oglądających WebInsider.pl
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Na WebInsider.pl korzystamy z motywu Extra od Elegant Themes. Zobacz dlaczego...