Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

How do you kill a mass of MySQL queries? Here is a good approach:

mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/a.txt';
mysql> source /tmp/a.txt;

Any others besides clicking them to death in MySQL Administrator GUI?

share|improve this question
    
Use the code tags - that's what they're for. –  Artem Russakovskii May 22 '09 at 18:09
    
Also, the solution you linked to has plenty of other solutions in the comments. You should read them. –  Artem Russakovskii May 22 '09 at 18:10
add comment

2 Answers 2

up vote 5 down vote accepted

To crib the best comments from Percona's take on this:

Comment 4: Robert Wultsch

I prefer the following as it will kill them in a multi threaded manner… (sometimes killing a single query can take a while)

for i in $(mysql -uroot -pPASS -e ’show processlist’ | grep ’search_term’ | awk ‘{print $1}’); do

mysql -uroot -pPASS -e “kill $i” &

done

Comment 8: Shlomi Noach

An INFORMATION_SCHEMA.PROCESSLIST stored procedure which is a bit verbose to copy.

Comment 16: Bryan

If information_schema.processlist doesn’t exist on your version of MySQL, this works in a linux script:

#!/bin/bash

for each in `mysqladmin -u root -prootpwd processlist | awk 
‘{print $2, $4, $8}’ | grep $dbname | grep $dbuser | awk ‘{print $1}’`;

do mysqladmin -u root -prootpwd kill $each;

done

Comment 21: Andrew Watson

I do this:

mysqladmin proc | grep Sleep | sort -r -n -k6 | awk {’print $1; ‘} | xargs mysqladmin kill

or something to that effect…


As Dan C mentions in his answer to this question, pruning SELECTS is significantly safer than killing write commands mid-flow, as you may lose data integrity and/or foreign keys.

share|improve this answer
add comment

An alternative solution is to use an approach that Digg describe, which is to automatically prune any SELECT queries which take longer than an allotted period of time to complete. Generally speaking you only want to prune SELECT queries because they are read-only and shouldn't affect the data integrity of your application.

Two such utilities that you can use to automate this are dbmon.pl and mkill which is part of a package called mtop.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.