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
- Adobe Commerce op-gebouw, alle gesteunde 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
-
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 deSELECT
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. -
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. -
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
- op-gebouw installatieoverzichtin onze ontwikkelaarsdocumentatie.
- uploadt het Gegevensbestand verliest verbinding aan MySQLin onze basis van de steunkennis.
- beste praktijken van het Gegevensbestand voor Adobe Commerce op wolkeninfrastructuurin onze basis van steunkennis.
- Beste praktijken om de kwesties van gegevensbestandprestatiesin onze basis van de steunkennis op te lossen.
- Beste praktijken voor het wijzigen van gegevensbestandlijstenin het Playbook van de Implementatie van Commerce