Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Abfrage stoppen, wenn sie zu lange dauert?

Es gibt ein nettes Perl-Skript auf CPAN, um genau dies zu tun:http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Man muss es nur so planen, dass es mit den richtigen Parametern läuft. Erstellen Sie eine CRONtab-Datei /etc/cron.d/mysql_query_timeout um es so zu planen, dass es jede Minute ausgeführt wird:

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

Wobei 7200 die maximal erlaubte Ausführungszeit in Sekunden ist. Der Schalter -s filtert alle außer SELECT-Abfragen heraus. Der Schalter -K weist das Skript an, die passenden Prozesse zu beenden.

Der Root-Benutzer sollte in der Lage sein, lokale MySQL-Tools ohne Authentifizierung auszuführen, andernfalls müssen Sie Anmeldeinformationen in der Befehlszeile angeben.