sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo detener una consulta de MySQL si tarda demasiado?

Hay un buen script Perl en CPAN para hacer precisamente esto:http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Solo es necesario programarlo para que se ejecute con los parámetros adecuados. Cree un archivo CRONtab /etc/cron.d/mysql_query_timeout para programarlo para que se ejecute cada minuto:

* * * * * root /path/to/mysql-genocide -t 7200 -s -K

Donde 7200 es el tiempo de ejecución máximo permitido en segundos. El modificador -s filtra todas las consultas excepto las SELECT. El modificador -K le indica al script que elimine los procesos coincidentes.

El usuario raíz debería poder ejecutar herramientas mysql locales sin autenticación; de lo contrario, deberá proporcionar credenciales en la línea de comando.