Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
¿Cómo puedo solucionar el error «Error de lectura de los paquetes de comunicación» en Amazon RDS para MySQL o en la versión compatible con MySQL de Aurora?
Utilizo una instancia de base de datos compatible con MySQL de Amazon Aurora o de Amazon Relational Database Service (Amazon RDS) para MySQL. He recibido el mensaje de error de «Error de lectura de los paquetes de comunicación».
Descripción corta
Si las conexiones servidor-cliente se interrumpen, no se cierran de forma adecuada o no se llevan a cabo correctamente, Amazon RDS aumenta el contador de estado tanto de aborted_clients como de aborted_connects. El parámetro aborted_clients describe el número de conexiones que Amazon RDS canceló porque el cliente se interrumpió sin cerrar la conexión correctamente. El parámetro aborted_connects describe el número de intentos fallidos de conectarse al servidor MySQL.
Si el valor de cualquiera de estos parámetros aumenta, recibirá el siguiente error en sus registros:
«[Warning] Aborted connection abc to db: 'database name' user: 'user name' host: 'host IP' (Got an error reading communication packets)».
Si el valor de log_error_verbosity supera 2, también recibirá el error anterior. El parámetro log_error_verbosity especifica la verbosidad para administrar los eventos destinados al registro de errores.
Para obtener más información, consulte B.3.2.9 Errores de comunicación y conexiones anuladas en el sitio web del servidor MySQL.
Los siguientes factores pueden provocar el error Error de lectura de los paquetes de comunicación:
- Incompatibilidad de cliente o controlador.
- Firewalls o proxies que pueden cerrar cualquier conexión inactiva o bloquearla.
- Una conexión cliente-servidor que se cierra incorrectamente y da como resultado un mayor número de conexiones inactivas dentro de RDS para MySQL.
- Una aplicación cliente que termina una conexión de forma incorrecta.
Nota: MySQL cierra forzosamente las conexiones inactivas de ejecución prolongada. - Conexiones inactivas que superan los umbrales de espera wait_timeout o interactive_timeout.
- Una conexión de cliente que supera el umbral de segundos de connect_timeout al obtener un paquete de conexión.
- Valores insuficientes para parámetros como net_write_timeout y net_read_timeout.
- Se ha superado el valor del parámetro max_allowed_packet.
Nota: Si el valor es demasiado pequeño o las consultas requieren más memoria de la asignada a Amazon RDS para MySQL, recibirá el error anterior.
Resolución
Compruebe los valores de los parámetros de tiempo de espera de conectividad. Tras identificar la causa principal del problema, cambie el valor del parámetro en función del problema que haya identificado. A continuación, supervise los registros de errores de MySQL mientras prueba el nuevo valor.
Solución de problemas de la configuración
Compruebe si está utilizando los valores predeterminados del grupo de parámetros de Amazon RDS. Es posible que deba modificar el valor de tiempo de espera de conectividad predeterminado para la instancia de base de datos. Para obtener más información, consulte la sección Parámetros relacionados con los tiempos de espera de conectividad de las Prácticas recomendadas para configurar los parámetros de Amazon RDS para MySQL, parte 3: Parámetros relacionados con la seguridad, la capacidad de administración operativa y el tiempo de espera de conectividad.
Establezca un valor más alto para connect_timeout para comprobar si el valor reduce la aparición del error de lectura de los paquetes de comunicación. El parámetro connect_timeout define cuántos segundos debe esperar la instancia de base de datos del servidor MySQL antes de que la instancia de base de datos responda con un protocolo de enlace incorrecto. Para obtener más información, consulte connect_timeout en el sitio web de MySQL.
También puede modificar los tiempos de espera interactive_timeout y wait_timeout. Para obtener más información sobre estos parámetros, consulte wait_timeout o interactive_timeout en el sitio web de MySQL. Las aplicaciones que utilizan agrupaciones de conexiones, como Java, deben tener tiempos de espera que coincidan con la configuración del grupo de conexiones.
Si la instancia debe administrar consultas grandes, columnas BLOB grandes o cadenas largas, aumente el valor de max_allowed_packet. Si una fila contiene más datos que el valor max_allowed_packet, recibirá un error. Para obtener más información, consulte la sección max_allowed_packet de las Prácticas recomendadas para configurar los parámetros de Amazon RDS para MySQL, parte 3: Parámetros relacionados con la seguridad, la capacidad de administración operativa y el tiempo de espera de conectividad. También puede consultar max_allowed_packet en el sitio web de MySQL. Además, aumente los valores net_write_timeout y net_read_timeout.
Nota: Puede establecer net_write_timeout y net_read_timeout en el mismo valor que wait_timeout. Para obtener más información, consulte net_write_timeout y net_read_timeout en el sitio web de MySQL.
Asegúrese de que las conexiones de RDS para MySQL o de la versión compatible con MySQL de Aurora estén cerradas correctamente. Antes de salir de la base de datos, llame a la función mysql_close() desde la aplicación cliente.
Solución de problemas avanzada
Si sigue recibiendo el mensaje de error de lectura de los paquetes de comunicación, lleve a cabo una de las siguientes acciones:
- Active Información de rendimiento para obtener el periodo de tiempo de las instrucciones SQL que presentan problemas. Para Aurora MySQL, consulte Activación y desactivación de Información de rendimiento de Aurora.
- Active los registros de consultas lentas en su instancia de base de datos compatible con Amazon RDS o Aurora MySQL para registrar las consultas que se ejecutan durante más tiempo que el valor long_query_time.
Nota: El valor predeterminado de long_query_time es de 10 segundos. - Active los registros de flujo de Amazon Virtual Private Cloud (Amazon VPC) para comprobar si el servidor o el cliente han cerrado la conexión.
- Verifique que su aplicación haya cerrado correctamente la conexión desde MySQL.
- Ejecute el comando tcpdump desde la máquina que ejecuta el cliente para probar las capturas de paquetes de muestra:
sudo tcpdump -vvv --interface eth0 port 3306 -W 10 -C 100
Información relacionada
¿Cómo modifico los valores de un grupo de parámetros de base de datos de Amazon RDS?
Vídeos relacionados


Contenido relevante
- preguntada hace 4 meseslg...
- preguntada hace 5 meseslg...
- Como solucionar el error: Supplied Policy document is breaching Cloudwatch Logs policy length limit.Respuesta aceptadapreguntada hace 4 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace 3 meseslg...