Pour tuer automatiquement une requête dans MySQL après un long temps d'exécution :
-
Créez une procédure stockée en tant que :
DECLARE CURSOR cur1 FOR SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Query' AND TIME > 120;
puis à l'intérieur de la boucle de curosr faites :
FETCH ID INTO @var_kill_id; KILL QUERY @var_kill_id;
-
Créer
EVENT FOR EVERY 5 SECONDS
et justeCALL
la procédure ci-dessus à l'intérieur.
Remarque :KILL QUERY tue simplement la requête et la connexion MySQL n'est pas interrompue. voir ici .