From a1617ebaeb256b3d359cc9fe389b8001235100c2 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Mon, 27 Jun 2016 03:51:58 +0800 Subject: Allow killing queries --- sql/mywatch_kill.sql | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sql/mywatch_kill.sql (limited to 'sql') diff --git a/sql/mywatch_kill.sql b/sql/mywatch_kill.sql new file mode 100644 index 0000000..0701467 --- /dev/null +++ b/sql/mywatch_kill.sql @@ -0,0 +1,26 @@ +DELIMITER $$ + +DROP PROCEDURE IF EXISTS mysql.mywatch_kill $$ +CREATE PROCEDURE mysql.mywatch_kill (IN i BIGINT) + COMMENT 'Kill a query found in information_schema.processlist by ID' +-- It seems reasonable that this procedure kills the connection, not just +-- the query, because of the `DELETE` HTTP method on the process id. If the +-- connection is not killed, the process id remains. +BEGIN + + DECLARE n BIGINT; + + SELECT id INTO n + FROM information_schema.processlist + WHERE info IS NOT NULL + AND host <> '' -- means non-system user + AND id = i; + + IF (n IS NOT NULL) THEN + KILL n; -- Use `CALL mysql.rds_kill(n);` on RDS + END IF; + +END $$ + +DELIMITER ; + -- cgit v1.2.3