Erros de banco de dados relacionados a max_allowed_packet no Adobe Commerce
Este artigo fornece uma solução para erros de conexão de banco de dados no var/log/exception.log
que podem ocorrer durante a importação de um grande número de produtos ou a execução de outra tarefa que força o servidor a manipular pacotes maiores do que o configurado no max_allowed_packet
, que é maior do que o padrão, 16MB.
Produtos e versões afetados
- Adobe Commerce local, todas as versões com suporte
Problema
Quando um cliente MySQL ou o servidor mysqld recebe um pacote com mais de max_allowed_packet bytes, ele emite um erro ER_NET_PACKET_TOO_LARGE (que pode ser visto no exception.log
) e fecha a conexão. Com alguns clientes, você também pode obter uma conexão Perdida com o servidor MySQL durante o erro de consulta se o pacote de comunicação for muito grande.
Etapas a serem reproduzidas
Várias tarefas podem produzir esse problema. Isso pode incluir tentar importar um grande número de produtos para o Adobe Commerce ou consultas transacionais enviando dados demais. O resultado são erros de conexão de banco de dados em var/log/exception.log
e outros problemas, como produtos que não foram importados com êxito.
Causa
O valor padrão de 16 MB para a configuração MySQL max_allowed_packets
não é grande o suficiente para suas necessidades.
Solução
-
Identifique consultas nas quais as linhas individuais excedem o limite atual de
max_allowed_packet
. Essas consultas precisam ser regravadas para reduzir a quantidade de dados retornados. Isso pode ser feito tendo um número menor de colunas na instruçãoSELECT
ou escolhendo um tipo de dados menor para várias colunas como parte do design da tabela. Se você tiver uma conta do New Relic, use a página Erros de APM do New Relic e a página Bancos de Dados de APM do New Relic e os Logs do New Relic para procurar as consultas relevantes. -
Para correção rápida, você pode solicitar temporariamente que o tamanho de
max_allowed_packet
seja aumentado ao enviar um tíquete, mas isso fica a critério da equipe de engenharia de clientes, pois um valor muito grande pode causar falhas de replicação, causando congestionamento de rede. -
Como prática recomendada, você deve executar o seguinte comando na CLI para algumas das tabelas grandes do banco de dados:
code language-none show table status like [table name to match]
Avalie as consultas em execução nessas tabelas para determinar se você está excedendo o tamanho
max_allowed_packet
recomendado de 16 MB. Siga o mesmo processo na etapa um para reduzir os dados retornados por essas consultas.
Leitura relacionada
- Visão geral da instalação local em nossa documentação do desenvolvedor.
- O carregamento do banco de dados perde a conexão com MySQL em nossa knowledge base de suporte.
- Práticas recomendadas do banco de dados para Adobe Commerce na infraestrutura em nuvem em nossa base de dados de conhecimento de suporte.
- Práticas recomendadas para resolver problemas de desempenho do banco de dados em nossa base de dados de conhecimento de suporte.
- Práticas recomendadas para modificar tabelas de banco de dados no Manual de implementação do Commerce