Прочетох много статии, които обясняват как да постигна това, но стигнах до заключението, че те просто не са го тествали правилно. Моите заключения са:
-
max_allowed_packet
на сървъра е твърдо кодирана горна граница. Можете да го промените за целия сървър като всяка друга настройка от страна на сървъра (конфигурационен файл или параметри на командния ред на сървъра), но не е възможно да го увеличите от клиента. -
Някои клиенти (като официалната помощна програма за командния ред) позволяват да се зададе
max_allowed_packet
при връзка. Това е единственият начин действително да промените стойността от клиент (промяната на сесията или глобалните променливи няма ефект върху размера на обменяните пакети), но е полезен само ако искате да понижите то. Изпращането на пакети, по-големи от настройката на сървъра, пак ще задейства грешки, свързани с пакети, тъй като сървърът няма да ги приеме.
За да обобщим:
- Трябва да третирате
max_allowed_packet
като само за четене. - Ако е твърде малък, трябва да го смените за целия сървър или да живеете с него.
Жалко е, че не мога да предоставя връзки към официална документация, но тази тема е слабо документирана.