[Delphi 7 & MySQL] Erreur Lost connection to MySQL server during query

, par  ramal

Contexte :

Un programme en Delphi 7 tente d’enregistrer un fichier dans un blob d’une base de donnée MySQL 4.xx ou 5.xx

Le programme utilise le BDE et l’accès à la base MySQL se fait au travers du connecteur MyODBC.

Problème :

Lors de l’écriture d’un blob dans la base MySQL, on à parfois l’erreur suivante :

... Lost connection to MySQL server during query

(pas très parlant, ni en rapport avec le problème réel)

ou

... Got a packet bigger than ’max_allowed_packet’ bytes

(on l’a pas souvent cette erreur, elle est pourtant bien plus parlante)

ou

... Packet too large

Solution :

Ajouter ou modifier la valeur du paramètre max_allowed_packet dans la section mysqld du fichier my.ini (fichier de configuration de MySQL)

On doit donc avoir :

[mysqld]
max_allowed_packet=10M

ou bien

[mysqld]
max_allowed_packet=100M

Sous windows, il faut arrêter et redémarrer le service MySQL pour que la modification soit prise en compte (ou redémarrer l’ordinateur).

Liens :

Explication du problème lien