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 mysqld server een pakket groter dan max_allowed_packet bytes ontvangt, geeft het een ER_NET_PACKET_TOO_LARGE fout 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_packetgrens overschrijden. Dergelijke vragen moeten worden herschreven om de hoeveelheid terug te geven gegevens te verminderen. Dit kan door een kleiner aantal kolommen in deSELECTverklaring 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 APM en de pagina van de Gegevensbestanden van New Relic APM , en Logs van New Relic om naar de relevante vragen te zoeken. -
Voor snelle sanering, kunt u tijdelijk verzoeken om de
max_allowed_packetgrootte om worden verhoogd wanneer u een kaartje voorlegt, 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_packetgrootte 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 installatieoverzicht in onze ontwikkelaarsdocumentatie.
- uploadt het Gegevensbestand verliest verbinding aan MySQL in onze basis van de steunkennis.
- beste praktijken van het Gegevensbestand voor Adobe Commerce op wolkeninfrastructuur in onze basis van steunkennis.
- Beste praktijken om de kwesties van gegevensbestandprestaties in onze basis van de steunkennis op te lossen.
- Beste praktijken voor het wijzigen van gegevensbestandlijsten in het Playbook van de Implementatie van Commerce