How to kill a query on Amazon Relational Database Service (RDS)

Josh Sherman
4 min read
Servers / Serverless AWS SQL

Coming from MySQL / MariaDB, I was surprised that I couldn’t kill a query on an Amazon’s Relational Database Service or Amazon Aurora with the kill command.

Fortunately, the functionality isn’t omitted, it’ just buried under some AWS RDS specific command. Before we go over that, let’s go over how to get the ID of a query:

SHOW PROCESSLIST;

Which will get you a list similar to this:

+------------+----------+-----------+------+---------+------+--------------+--------------------+
| Id         | User     | Host      | db   | Command | Time | State        | Info               |
+------------+----------+-----------+------+---------+------+--------------+--------------------+
| 2132181096 | rdsadmin | localhost | NULL | Sleep   |    0 | cleaning up  | NULL               |
| 2132181149 | rdsadmin | localhost | NULL | Sleep   |    0 | cleaning up  | NULL               |
| 2132183981 | rdsadmin | localhost | NULL | Sleep   |    0 | cleaning up  | NULL               |
| 2132184028 | rdsadmin | localhost | NULL | Sleep   |   75 | cleaning up  | NULL               |
| 2281457043 | master   | localhost | db   | Query   |    0 | starting     | SHOW PROCESSLIST   |
| 2281459713 | username | localhost | db   | Sleep   |   14 | cleaned up   | NULL               |
| 2281459714 | username | localhost | db   | Sleep   |    3 | cleaning up  | NULL               |
| 2281460263 | username | localhost | db   | Query   |    0 | Sending data | SELECT * FROM...   |
| 2281460515 | username | localhost | db   | Sleep   |    3 | cleaned up   | NULL               |
| 2281460516 | username | localhost | db   | Sleep   |    3 | cleaned up   | NULL               |
| 2281460518 | username | localhost | db   | Sleep   |    0 | cleaning up  | NULL               |
| 2281460519 | username | localhost | db   | Query   |    3 | Sending data | SELECT COUNT(*)... |
| 2281460522 | username | localhost | db   | Sleep   |    2 | cleaned up   | NULL               |
| 2281460530 | username | localhost | db   | Sleep   |    0 | cleaning up  | NULL               |
| 2281460531 | username | localhost | db   | Query   |    0 | Sending data | SELECT DISTINCT... |
| 2281460532 | username | localhost | db   | Sleep   |    0 | cleaned up   | NULL               |
+------------+----------+-----------+------+---------+------+--------------+--------------------+
16 rows in set (0.00 sec)

The value that we’re interested in here would the first one, labeled Id. With the ID of a query we want to kill, all we have to do is pass it to the AWS-specific command:

-- Replace :id with the Id value
CALL mysql.rds_kill_query(:id);

Upon running that command, the query will be obliterated!

Join the Conversation

Good stuff? Want more?

Weekly emails about technology, development, and sometimes sauerkraut.

100% Fresh, Grade A Content, Never Spam.

About Josh

Husband. Father. Pug dad. Born again Linux user. Founder of Holiday API, Backend Engineering Manager and Emoji Specialist at Mailshake (WE'RE HIRING!), and author of the best damn Lorem Ipsum Library for PHP.

Currently Reading

Pears and Perils
Antifragile: Things That Gain from Disorder
Code Girls: The Untold Story of the American Women Code Breakers of World War II

Previous Reads

Buy Me a Coffee Become a Sponsor

Related Articles