Przeczytałem wiele artykułów, które wyjaśniają, jak to zrobić, ale doszedłem do wniosku, że po prostu nie przetestowali tego prawidłowo. Moje wnioski to:
-
max_allowed_packet
serwera to zakodowana górna granica. Możesz zmienić to dla całego serwera, jak każde inne ustawienie po stronie serwera (plik konfiguracyjny lub parametry wiersza poleceń serwera), ale nie można go zwiększyć z poziomu klienta. -
Niektóre klienty (takie jak oficjalne narzędzie wiersza poleceń) pozwalają ustawić
max_allowed_packet
na połączenie. Jest to jedyny sposób, aby faktycznie zmienić wartość z klienta (zmiana zmiennych sesji lub zmiennych globalnych nie ma wpływu na wielkość wymienianych pakietów), ale jest przydatna tylko wtedy, gdy chcesz obniżyć to. Wysyłanie pakietów większych niż ustawienia serwera nadal będzie powodować błędy związane z pakietami, ponieważ serwer ich nie zaakceptuje.
Podsumowując:
- Musisz leczyć
max_allowed_packet
jako tylko do odczytu. - Jeśli jest za mały, musisz go zmienić dla całego serwera lub z nim żyć.
Szkoda, że nie mogę podać linków do oficjalnej dokumentacji, ale ten temat jest słabo udokumentowany.