Comment résoudre l'erreur « MySQL Server Has Gone Away » dans la boucle PDO
Dans un scénario impliquant un script basé sur PDO exécutant une boucle des instructions préparées, il a été constaté que l'exécution échouait avec l'erreur « Le serveur MySQL est parti ». Comprendre la cause sous-jacente et mettre en œuvre une solution est crucial pour maintenir l'intégrité du script.
L'erreur se produit généralement lorsqu'un paquet envoyé au serveur dépasse sa taille de paquet maximale autorisée. Cela peut se produire lorsque des données BLOB (Binary Large OBject) volumineuses sont tentées d'insertion.
Pour déterminer la source du problème, il est recommandé d'examiner les messages d'erreur côté client et côté serveur. Côté client, le message d'erreur susmentionné s'affiche, tandis que le journal du serveur peut indiquer "Erreur 1153 Vous avez un paquet plus grand que les octets 'max_allowed_packet'."
La résolution implique d'ajuster la valeur max_allowed_packet dans le fichier my.ini. fichier pour s’adapter à la taille du plus grand BLOB. Cette valeur doit être définie en conséquence, en veillant à ce qu'elle soit plus grande que toute insertion BLOB prévue.
Par exemple, l'entrée suivante dans my.ini définit la taille maximale des paquets à 200 mégaoctets :
[mysqld] ... max_allowed_packet = 200M ...
En implémentant ce changement, le script devrait être capable d'exécuter avec succès la boucle d'instructions préparées sans rencontrer l'erreur « Le serveur MySQL est parti ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!