Eu li muitos artigos que explicam como fazer isso, mas cheguei à conclusão de que eles simplesmente não testaram corretamente. Minhas conclusões são:
-
max_allowed_packet
do servidor é um limite superior codificado. Você pode alterá-lo para todo o servidor como qualquer outra configuração do lado do servidor (arquivo de configuração ou parâmetros de linha de comando do servidor), mas não é possível aumentá-lo a partir do cliente.
-
Alguns clientes (como o utilitário de linha de comando oficial) permitem definirmax_allowed_packet
na conexão. É a única maneira de realmente alterar o valor de um cliente (mudança de sessão ou variáveis globais não afeta o tamanho dos pacotes trocados), mas só é útil se você quiser diminuir isto. O envio de pacotes maiores que a configuração do servidor ainda acionará erros relacionados ao pacote, pois o servidor não os aceitará.
Resumindo:
- Você precisa tratar
max_allowed_packet
como somente leitura. - Se for muito pequeno, você precisa alterá-lo para todo o servidor ou viver com ele.
É uma pena que eu não possa fornecer links para a documentação oficial, mas este assunto está mal documentado.