He leído muchos artículos que explican cómo lograr esto, pero he llegado a la conclusión de que simplemente no lo han probado correctamente. Mis conclusiones son:
-
max_allowed_packet
del servidor es un límite superior codificado de forma rígida. Puede cambiarlo para todo el servidor como cualquier otra configuración del lado del servidor (archivo de configuración o parámetros de línea de comandos del servidor), pero no es posible aumentarlo desde el cliente. -
Algunos clientes (como la utilidad de línea de comandos oficial) permiten configurar
max_allowed_packet
en la conexión. Es la única forma de cambiar realmente el valor de un cliente (cambiar las variables de sesión o globales no tiene efecto en el tamaño de los paquetes intercambiados), pero solo es útil si desea reducir eso. El envío de paquetes más grandes que la configuración del servidor aún generará errores relacionados con el paquete, ya que el servidor no los aceptará.
En resumen:
- Tienes que tratar
max_allowed_packet
como de solo lectura. - Si es demasiado pequeño, debe cambiarlo para todo el servidor o vivir con él.
Es una pena que no pueda proporcionar enlaces a la documentación oficial, pero este tema está mal documentado.