Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Como resolver o erro "Got an error reading communication packets" no Amazon RDS para MySQL ou no Aurora compatível com MySQL?
Eu uso uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para MySQL ou de uma edição compatível com MySQL do Amazon Aurora. Recebi a mensagem de erro "Got an error reading communication packets".
Breve descrição
Você recebe a mensagem de erro "[Warning] Aborted connection abc to db: 'database name' user: 'user name' host: 'host IP' (Got an error reading communication packets)".
Você recebe a mensagem de erro acima quando o valor do parâmetro aborted_clients ou aborted_connects aumenta. O Amazon RDS cancela a conexão e aumenta o contador de status do parâmetro aborted_clients quando o cliente morre e não fecha a conexão ou a conexão é interrompida. O valor do parâmetro aborted_connects aumenta quando o cliente não consegue se conectar ao servidor MySQL.
Se o valor de log_error_verbosity exceder dois, você também receberá a mensagem de erro. O parâmetro log_error_verbosity especifica a verbosidade para gerenciar eventos destinados ao log de erros. Para obter mais informações, consulte Communication errors and aborted connections (Erros de comunicação e conexões interrompidas) no site do MySQL.
Os seguintes fatores podem causar a mensagem de erro "Got an error reading communication packets":
- Incompatibilidade de cliente ou driver.
- Firewalls ou proxies, que podem fechar qualquer conexão ociosa ou bloquear uma conexão.
- Uma conexão cliente-servidor que está fechada incorretamente e resulta em um número maior de conexões inativas dentro do Amazon RDS para MySQL.
- Uma aplicação de cliente que encerra uma conexão incorretamente.
Observação: o MySQL fecha forçosamente conexões ociosas de longa duração. - Conexões ociosas que excedem os limites wait_timeout ou interactive_timeout.
- Uma conexão de cliente que excede o limite de segundos de connect_timeout quando obtém um pacote de conexão.
- Valores insuficientes para parâmetros como net_write_timeout e net_read_timeout.
- Um valor do parâmetro max_allowed_packet excedido.
Observação: o problema ocorre quando o valor é muito pequeno ou as consultas exigem mais memória do que você aloca no Amazon RDS para MySQL.
Resolução
Modifique parâmetros de tempo limite
Para identificar o que está causando o problema, consulte os parâmetros relacionados aos tempos limite de conectividade. Se você estiver usando valores padrão para seu grupo de parâmetros, altere o valor do tempo limite de conectividade padrão em sua instância de banco de dados.
Para alterar o parâmetro de conectividade, conclua as seguintes etapas:
- Abra o console do Amazon RDS.
- No painel de navegação, clique em Grupos de parâmetros.
- Selecione o grupo de parâmetros para sua instância de banco de dados.
- Clique em Editar.
- Pesquise o parâmetro de tempo limite de conectividade e altere o valor.
Observação: depois de alterar os valores, monitore os logs de erro do MySQL ao testar o novo valor.
connect_timeout
Defina um valor mais alto para connect_timeout para testar se o valor reduz a ocorrência desse problema. O parâmetro connect_timeout define quantos segundos a instância de banco de dados do servidor MySQL deve esperar antes de responder com um handshake incorreto. Para obter mais informações, consulte connect_timeout no site do MySQL.
interactive_timeout e wait_timeout
Também é possível alterar interactive_timeout e wait_timeout. Para obter mais informações sobre esses parâmetros, consulte wait_timeout ou interactive_timeout no site do MySQL. As aplicações que usam o agrupamento de conexão, como Java, devem ter tempos limite que correspondam às configurações do grupo de conexão.
max_allowed_packet
Se a instância precisar gerenciar consultas grandes, colunas BLOB (Binary Large Object) grandes ou strings longas, aumente o valor de max_allowed_packet. Se uma linha tiver mais dados do que o valor max_allowed_packet, você receberá uma mensagem de erro. Para obter mais informações, consulte max_allowed_packet no site do MySQL.
net_write_timeout e net_read_timeout
Aumente os valores net_write_timeout e net_read_timeout. É possível definir net_write_timeout e net_read_timeout para o mesmo valor de wait_timeout. Para obter mais informações, consulte net_write_timeout e net_read_timeout no site do MySQL.
Chame a função mysql_close() da aplicação do cliente para garantir que as conexões com Amazon RDS para MySQL ou Aurora compatível com MySQL sejam fechadas corretamente.
Use outros métodos de solução de problemas
Se você ainda receber a mensagem de erro "Got an error reading communications packets", realize qualquer uma das seguintes ações:
- Ative o Insights de Performance para obter o período de tempo das instruções SQL que encontram problemas. Para o Aurora compatível com MySQL, consulte Ativar e desativar o Insights de Performance para o Aurora.
Importante: o Insights de Performance chegará ao fim de sua vida útil em 30 de junho de 2026. É possível fazer o upgrade para o modo Avançado do Database Insights antes de 30 de junho de 2026. Se você não fizer o upgrade, os clusters de banco de dados que usam o Insights de Performance usarão como padrão o modo Padrão do Database Insights. Somente o modo Avançado do Database Insights será compatível com planos de execução e análises sob demanda. Se seus clusters usarem como padrão o modo Padrão, talvez você não consiga usar esses recursos no console. Para ativar o modo Avançado, consulte Ativação do modo Avançado do Database Insights para Amazon RDS e Ativação do modo Avançado do Database Insights para Amazon Aurora. - Ative os logs de consulta lenta em sua instância de banco de dados do Amazon RDS ou Aurora compatível com MySQL para registrar em log consultas que são executadas por mais tempo do que o valor long_query_time.
Observação: o valor padrão de long_query_time é 10 segundos. - Ative os Logs de fluxo da Amazon Virtual Private Cloud (Amazon VPC) para verificar se o servidor ou o cliente fechou a conexão.
- Verifique se sua aplicação fechou corretamente a conexão do MySQL.
- Execute o comando tcpdump da máquina que está executando o cliente para testar capturas de pacotes de amostra:
sudo tcpdump -vvv --interface eth0 port 3306 -W 10 -C 100
Informações relacionadas
Por que as conexões de banco de dados caíram na minha instância de banco de dados Amazon RDS?
Como faço para visualizar e baixar os logs de um cluster de banco de dados do Aurora sem servidor?
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há um ano
- feita há um ano
- feita há um ano
AWS OFICIALAtualizada há 2 anos