Erreurs de base de données liées à max_allowed_paquets sur Adobe Commerce
Cet article fournit une solution pour les erreurs de connexion à la base de données dans le var/log/exception.log qui peuvent se produire lors de l'importation d'un grand nombre de produits ou de l'exécution d'une autre tâche qui force le serveur à gérer des paquets plus gros que défini dans max_allowed_packet qui est plus grand que la valeur par défaut, 16 Mo.
Produits et versions concernés
- Adobe Commerce On-premise, toutes les versions prises en charge
Problème
Lorsqu’un client MySQL ou le serveur mysqld reçoit un paquet de plus de max_allowed_paquets octets, il émet une erreur ER_NET_PACKET_TOO_LARGE (visible dans le exception.log) et ferme la connexion. Avec certains clients, vous pouvez également obtenir une erreur Connexion perdue à MySQL serveur pendant la requête si le paquet de communication est trop volumineux.
Procédure à suivre
Diverses tâches peuvent générer ce problème. Cela peut inclure une tentative d’importation d’un grand nombre de produits dans Adobe Commerce ou des requêtes transactionnelles renvoyant trop de données. Il en résulte des erreurs de connexion à la base de données dans var/log/exception.log et d'autres problèmes, comme des produits dont l'importation échoue.
Cause
La valeur par défaut de 16 Mo pour le paramètre MySQL max_allowed_packets n’est pas suffisamment élevée pour répondre à vos besoins.
Solution
-
Identifier les requêtes dans lesquelles les lignes individuelles dépassent la limite de
max_allowed_packetactuelle. Ces requêtes doivent être réécrites pour réduire la quantité de données renvoyées. Pour ce faire, il suffit de réduire le nombre de colonnes dans l’instructionSELECTou de choisir un type de données plus petit pour différentes colonnes dans le cadre de la conception du tableau. Si vous disposez d’un compte New Relic, utilisez la page Erreurs APM New Relic la page Bases de données APM New Relic et les Journaux New Relic pour rechercher les requêtes appropriées. -
Pour une résolution rapide, vous pouvez demander temporairement une augmentation de la taille du
max_allowed_packetlorsque vous soumettez un ticket, mais cela est à la discrétion de l’équipe d’ingénierie client, car une valeur trop grande peut entraîner des échecs de réplication en provoquant une congestion du réseau. -
En règle générale, il est recommandé d’exécuter la commande suivante dans l’interface de ligne de commande pour certaines de vos tables de base de données volumineuses :
code language-none show table status like [table name to match]Évaluez les requêtes exécutées sur ces tables pour déterminer si vous dépassez la taille de
max_allowed_packetrecommandée de 16 Mo. Suivez le même processus à l’étape 1 pour réduire les données renvoyées par de telles requêtes.
Lecture connexe
- Présentation de l’installation sur site dans notre documentation destinée aux développeurs.
- Bonnes pratiques relatives aux bases de données pour Adobe Commerce sur les infrastructures cloud dans notre base de connaissances d’assistance.
- Bonnes pratiques pour résoudre les problèmes de performances de la base de données dans notre base de connaissances d’assistance.
- Recommandations relatives à la modification des tables de base de données dans le manuel Commerce Implementation Playbook