Databasefouten met betrekking tot max_allowed_packet op Adobe Commerce

Dit artikel biedt een oplossing voor databaseverbindingsfouten in de var/log/exception.log die kunnen optreden wanneer u een groot aantal producten importeert of een andere taak uitvoert die de server dwingt grotere pakketten af te handelen dan in max_allowed_packet is ingesteld, die groter is dan de standaardwaarde (16 MB).

Betrokken producten en versies

Probleem

Wanneer een MySQL cliënt of de mysqldserver een pakket groter dan max_allowed_packetbytes ontvangt, geeft het een ER_NET_PACKET_TOO_LARGEfout uit (die in exception.log) kan worden gezien en sluit de verbinding. Met sommige cliënten, kunt u a Verloren verbinding aan MySQL server tijdens vraag fout ook krijgen als het communicatie pakket te groot is.

Stappen om te reproduceren

Dit probleem kan worden veroorzaakt door verschillende taken. Dit kan het proberen om een groot aantal producten in Adobe Commerce in te voeren of transactievragen omvatten die teveel gegevens terugsturen. Het resultaat is een fout in de databaseverbinding in var/log/exception.log en andere problemen, zoals producten die niet correct zijn geïmporteerd.

Oorzaak

De standaardwaarde van 16 MB voor de instelling MySQL max_allowed_packets is niet groot genoeg voor uw behoeften.

Oplossing

  1. Identificeer vragen waar de individuele rijen de huidige max_allowed_packet grens overschrijden. Dergelijke vragen moeten worden herschreven om de hoeveelheid terug te geven gegevens te verminderen. Dit kan door een kleiner aantal kolommen in de SELECT verklaring te hebben of een kleiner gegevenstype voor diverse kolommen als deel van het lijstontwerp te kiezen. Als u een rekening van New Relic hebt, gebruik de pagina van de Fouten van New Relic APMen de pagina van de Gegevensbestanden van New Relic APM, en Logs van New Relicom naar de relevante vragen te zoeken.

  2. Voor snelle sanering, kunt u tijdelijk verzoeken om de max_allowed_packet grootte om worden verhoogd wanneer u een kaartjevoorlegt, maar dit is bij de discretie van het team van de Techniek van de Klant, aangezien te groot van een waarde replicatiefouten kan veroorzaken door netwerkcongestie te veroorzaken.

  3. Als beste praktijken, zou u het volgende bevel in uw CLI voor sommige van uw grote gegevensbestandlijsten moeten in werking stellen:

    code language-none
    show table status like [table name to match]
    

    Evalueer de vragen die op deze lijsten lopen om te bepalen als u de geadviseerde max_allowed_packet grootte van 16MB overschrijdt. Volg het zelfde proces in stap één om de gegevens te verminderen die door dergelijke vragen worden teruggegeven.

Gerelateerde lezing

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a