Si le client mysql
perd la connexion au
serveur durant l'envoi d'une requête, il va immédiatement et
automatiquement essayer de se reconnecter une fois au serveur,
puis essayer d'envoyer à nouveau la requête. Toutefois,
même si mysql
réussit à se reconnecter,
l'ancienne connexion a été fermée, et tous les objets
temporaires ont été perdus : tables temporaires,
configuration en auto_commit, variables utilisateur et de
session. Ce comportement peut se révéléer dangeureux pour
vous, comme dans l'exemple suivant, où le serveur est
stoppé, puis relancé sans que vous le sachiez :
mysql>SET @a=1;
Query OK, 0 rows affected (0.05 sec) mysql>INSERT INTO t VALUES(@a);
ERROR 2006: MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test Query OK, 1 row affected (1.30 sec) mysql>SELECT * FROM t;
+------+ | a | +------+ | NULL | +------+ 1 row in set (0.05 sec)
La variable utilisateur @a
a été
perduée, et lors de la reconnexion, elle est indéfinie. S'il
est important que mysql
génère une erreur
lors de la perte de connexion, vous pouvez lancez le client
mysql
avec l'option
--skip-reconnect
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.