TL;DR — Para aumentar el tamaño de max_allowed_packet de forma permanente, añade
max_allowed_packet=1Gbajo[mysqld]enmy.cnfy reinicia MySQL. Para una solución inmediata sin reiniciar, ejecutaSET GLOBAL max_allowed_packet=1073741824;en un cliente MySQL. Confirma el cambio conSHOW VARIABLES LIKE 'max_allowed_packet';.
Contents

Cuando MySQL recibe una consulta con un paquete de datos mayor que el valor de max_allowed_packet, genera un error «Packet too large» y cierra la conexión. Este es un error común de MySQL en entornos WordPress: aparece durante errores de tamaño de paquete MySQL al publicar, paquete demasiado grande al clonar, importaciones de bases de datos grandes y migraciones de sitios. El valor predeterminado es bajo en relación con lo que necesitan los sitios WordPress grandes, pero aumentarlo es sencillo una vez que identificas el método correcto para tu entorno de Hosting.
Por ejemplo, si la restauración del Backup de WP STAGING falla debido a un tamaño de paquete insuficiente, el mensaje de error muestra el tamaño de la consulta problemática para que puedas ajustar max_allowed_packet en consecuencia. En la versión actual de WP STAGING, el Plugin regula y ejecuta las consultas de base de datos de forma dinámica según el tamaño máximo de paquete permitido por tu servidor, pero el límite subyacente de MySQL sigue aplicándose a las importaciones directas y las herramientas de terceros.
Tienes dos opciones para cambiar el tamaño de max_allowed_packet de MySQL: un cambio permanente en el archivo de configuración de MySQL y un cambio temporal mediante SQL; ambos se explican a continuación.
Qué controla max_allowed_packet
La variable del sistema max_allowed_packet establece el tamaño máximo de un único paquete de comunicación entre el cliente y el servidor MySQL. Cuando una consulta, una fila de resultados o una definición de rutina almacenada supera este límite, MySQL termina la conexión y registra un error.
Patrones de síntomas comunes:
- «Packet too large» — MySQL rechaza la consulta de inmediato.
- «MySQL server has gone away» — la conexión se interrumpe durante una importación de larga duración.
- Fallos al publicar o restaurar en WP STAGING cuando el sitio contiene revisiones de entradas grandes, valores de opciones serializados o metadatos de imágenes almacenados como post meta.
- Errores durante la restauración con
mysqldumpo la importación en phpMyAdmin.
En nuestra cola de soporte, el desencadenante más común es una publicación de WP STAGING que incluye grandes bibliotecas de imágenes o revisiones de entradas almacenadas como post meta. También hemos visto que esto bloquea el proceso de aumento de max_allowed_packet antes de migrar a un nuevo servidor: detectar el límite antes de una migración evita importaciones fallidas a mitad del proceso.
¿Qué método debo usar?
| Tu entorno | Mejor método |
|---|---|
| VPS o servidor dedicado con acceso SSH | Editar my.cnf — permanente |
| Hosting compartido (sin SSH) | Contacta con tu proveedor; phpMyAdmin puede inspeccionar el valor actual pero no cambiarlo de forma permanente |
| AWS RDS para MySQL | Modifica un grupo de parámetros de BD en la consola de AWS |
| DigitalOcean Managed MySQL | Configúralo desde la pestaña «Configuration» del panel de control |
| Necesitas una solución inmediata sin reiniciar | Comando SQL SET GLOBAL — temporal, se restablece al reiniciar |
Si no estás seguro de qué archivo de configuración está leyendo MySQL, ejecuta mysql --verbose --help | grep my.cnf en un terminal para ver el orden de búsqueda completo.
Cómo establecer max_allowed_packet de forma permanente
Un cambio permanente sobrevive a los reinicios del servidor MySQL. El método depende de tu entorno de Hosting.
VPS o servidor dedicado: editar my.cnf
- Abre
my.ini(Windows) omy.cnf(Linux/macOS) en el directorio de instalación del servidor MySQL. En la mayoría de sistemas Linux el archivo está en/etc/mysql/my.cnfo/etc/my.cnf. Para la configuración del servidor MySQL mediante la línea de comandos, verifica primero la ruta exacta conmysql --verbose --help | grep my.cnf. - Localiza la sección
[mysqld]. La directiva debe ir bajo[mysqld], no bajo[mysql]ni[client]; colocarla en la sección incorrecta es la razón más común por la que la solución parece funcionar pero no tiene efecto. - Busca o añade la línea
max_allowed_packet. Para establecer el valor en 1 GB:
[mysqld]
max_allowed_packet=1G
- Guarda el archivo y reinicia MySQL:
sudo systemctl restart mysql
- Verifica el nuevo valor:
SHOW VARIABLES LIKE 'max_allowed_packet';
Hosting compartido: inspeccionar mediante phpMyAdmin
En Hosting compartido sin acceso SSH, puedes comprobar el valor actual de max_allowed_packet navegando a phpMyAdmin → Variables y buscando max_allowed_packet. Para aumentarlo de forma permanente, contacta con tu proveedor de Hosting — se trata de un ajuste a nivel de servidor que requiere acceso administrativo fuera del panel de control compartido.
Bases de datos gestionadas: AWS RDS y DigitalOcean
Los servicios MySQL gestionados en la nube exponen la variable a través de sus paneles de control en lugar de un archivo de configuración:
- AWS RDS para MySQL — abre la instancia de BD en la consola de AWS, navega a su grupo de parámetros asociado y establece
max_allowed_packet. Aplica el grupo de parámetros actualizado y reinicia la instancia para que el cambio surta efecto. - DigitalOcean Managed MySQL — navega a la pestaña Configuration de tu clúster de base de datos y actualiza
max_allowed_packetallí.
Para ambas plataformas, establece el valor antes de ejecutar una importación o migración grande. Consulta aumentar max_allowed_packet antes de migrar para obtener una lista de verificación previa a la migración.
Cómo establecer max_allowed_packet temporalmente
La variable max_allowed_packet puede establecerse globalmente ejecutando un comando SQL. Esto surte efecto de inmediato — sin necesidad de reiniciar — pero el valor se restablece cuando el servidor MySQL se reinicia. Siempre complementa esto con la edición permanente de my.cnf si necesitas que el cambio persista.
Sin embargo, si no lo cambias en el archivo my.ini, el valor siempre se restablecerá cuando el servidor se reinicie, aunque lo hayas establecido globalmente.
Para cambiar el paquete máximo permitido para todos a 1 GB hasta que el servidor se reinicie:
SET GLOBAL max_allowed_packet=1073741824;
Verifica de inmediato:
SHOW VARIABLES LIKE 'max_allowed_packet';
Este método es útil para desbloquear errores de max_allowed_packet en una restauración en curso, o para probar el valor correcto antes de confirmarlo en el archivo de configuración.
Qué hacer si el ajuste no surte efecto
Si SHOW VARIABLES LIKE 'max_allowed_packet'; sigue devolviendo el valor anterior tras el cambio, revisa esta lista de verificación:
- Sección de configuración incorrecta. La directiva debe estar bajo
[mysqld]. Abre el archivo y confirma que el encabezado de sección aparece directamente encima de la líneamax_allowed_packet. - Archivo de configuración incorrecto. MySQL lee varios archivos en un orden específico y el último valor coincidente prevalece. Comprueba la ruta de búsqueda real:
mysql --verbose --help | grep my.cnf
- MySQL no se reinició. Confirma que el servicio se reinició correctamente:
sudo systemctl status mysql
- Archivo no guardado o sin permisos de lectura. Verifica que el archivo se guardó y que MySQL tiene permiso de lectura sobre él.
- Nodos réplica. En un entorno replicado,
SET GLOBALsolo se aplica al nodo al que te conectaste. Cada réplica requiere su propia actualización en el archivo de configuración. - Límite del lado del cliente. Algunos clientes de base de datos establecen
max_allowed_packeten el momento de la conexión. Si el valor del cliente es inferior al del servidor, se aplica el límite del cliente independientemente del ajuste del servidor.
Hemos visto que la solución falla silenciosamente cuando faltaba el encabezado de sección [mysqld] en un my.cnf recién aprovisionado que solo contenía entradas [mysql]: MySQL analiza el archivo sin errores pero ignora la directiva.
Para errores de límite de memoria del servidor relacionados que aparecen junto con errores de paquetes MySQL en los archivos de registro, se aplican las mismas reglas de sección de configuración. Para otros límites de servidor MySQL y PHP, un enfoque similar de edición del archivo de configuración del servidor resuelve el problema.
Artículos relacionados
- Cómo aumentar el límite de PHP Max Input Vars en WordPress
- Cómo aumentar el tamaño máximo de carga de archivos en WordPress
- Cómo cambiar el prefijo de tabla WordPress en la base de datos MySQL
- 3 formas de cambiar el prefijo de tablas de base de datos de WordPress
- Solucionar la extensión PHP MySQL ausente en WordPress
- Tutorial para reparar y optimizar tablas de base de datos con phpMyAdmin
- Error MySQL – «Row size too large» al restaurar un Backup