Jestem w trakcie migrowania kilku stron nowego klienta, i jak to w takich sytuacjach zazwyczaj bywa – jest to przygoda pełna niespodzianek. Poza błędem 1273 (HY000) podczas importowania bazy danych MySQL trafiłem dziś rano (a w sumie to jeszcze w nocy, bo takie migracje najczęściej wykonujemy około 4-5). Błąd o tyle ciekawy, że zapewne w internecie znajdziecie masę porad jak sobie z nim poradzić, i zapewne większość z nich nie zadziała…
MySQL: Row size too large (> 8126)
Z serwera źródłowego udało się wyeksportować (zapisać) bezę do pliku danych bez jakichkolwiek problemów. Szybki przerzut na nowy serwer (w tym czasie kopiowanie plików z wykorzystaniem programu Rsync i bezpiecznego połączenia SSH), i.. zaczęły się schody.
Nie będę zanudzał Was wszystkimi drobiazgami, bo one bez większego znaczenia, do tego nie było to coś, czego rozwiązanie wymagało by „porannej kawy” (której i tak nie pijam). Niespodzianką był za to błąd 1118 (42000), który pojawił się pomimo przenoszenia bazy między tymi samymi wersjami serwera MySQL (5.7).
Tak wyglądał w konsoli:
ERROR 1118 (42000) at line 619: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
A tak – dla przykładu – w phpMyAdmin:
#1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
W dużym skrócie – czegoś jest więcej niż powinno być wg standardu, i stąd problem. Nawet nie zaglądałem do internetu w poszukiwaniu rozwiązania, bo pamiętam, że już kiedyś ze znajomym szukaliśmy, i… szkoda czasu. Uznałem, że najlepiej (i najszybciej) będzie zerkną np. w phpMyAdmin, do którego momentu baza się importuje, dzięki czemu namierzymy problem i od razu go usuniemy (również na przyszłość).
W opisywanym przypadku proces importowania zwracał błąd podczas importowania jednej z tabel utworzonych przez wtyczkę do responsywnych galerii. A z racji tego, ze na stronie (WordPress) wtyczka ta była nieużywana już od jakiegoś czasu, to nawet nie wahałem się na bazie źródłowej usunąć powiązane z nią tabele, bez głębszej analizy, który to konkretnie element psuł transakcję:
DROP TABLE `wp_bwg_album`, `wp_bwg_album_gallery`, `wp_bwg_gallery`, `wp_bwg_image`, `wp_bwg_image_comment`, `wp_bwg_image_rate`, `wp_bwg_image_tag`, `wp_bwg_option`, `wp_bwg_shortcode`, `wp_bwg_theme`;
Po tej operacji zarówno eksport jak i import bazy przebiegł pomyślnie, więc można było iść… z psami na wczesnoporanny spacer… ;-)
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
No super rozwiązanie. Godne napisania artykułu. Zaimponowałeś wszystkim.
Czy wszystkim to ani ja, ani zapewne Ty tego nie wiesz. Ale do spełnienia w żuciu wystarczy mi to, że być może zaimponowałem, choć Tobie ;-P