Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso parar uma consulta MySQL se demorar muito?


Existe um bom script Perl no CPAN para fazer exatamente isso:http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Basta programá-lo para ser executado com os parâmetros adequados. Crie um arquivo CRONtab /etc/cron.d/mysql_query_timeout para agendá-lo para ser executado a cada minuto:

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

Onde 7200 é o tempo máximo de execução permitido em segundos. A opção -s filtra todas as consultas, exceto SELECT. A opção -K instrui o script a matar os processos correspondentes.

O usuário root deve ser capaz de executar ferramentas mysql locais sem autenticação, caso contrário você precisará fornecer credenciais na linha de comando.