Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Query is locking tables, can't kill that process

I have a query locking tables in MySQL (using InnoDB):

UPDATE table SET status = 2 WHERE status = 3

This query caused a deadlock on the table and can't bypass it.

I tried to do:

show processlist

then kill the process id but i can't seems to kill it

I tried:

kill 9588

9588 is the process id.

Then I do show processlist I still see the same query on the list.

How can I force killing this process and then why would this query cause a dead lock? how can I fix it?

like image 831
Mike Avatar asked Apr 10 '13 17:04

Mike


3 Answers

When you run a MySQL instance on RDS and want to kill a thread or a query for some reason, you’ll find you cannot use KILL or mysqladmin kill because you don’t have a permission to do so.

RDS provides the stored procedures named mysql.rds_kill and mysql.rds_kill_query which will kill a thread and a query respectively. To kill a thread, first use SHOW PROCESSLIST to get the list of threads and find the id of the thread you want to kill. Assuming the thread id is 53512, then use

CALL mysql.rds_kill(53512)

Source: http://snak.tumblr.com/post/13856391340/killing-a-thread-or-query-of-mysql-running-on-rds

like image 106
Eric Leschinski Avatar answered Sep 19 '22 09:09

Eric Leschinski


The KILL command requests the query terminate, and the state of the command should show up as Killed. There's no way to force-kill something and have it terminate immediately.

As a last resort you can always shut-down and restart your mysqld server process.

like image 43
tadman Avatar answered Sep 17 '22 09:09

tadman


You need to run following command to kill the process.

> show processlist;  
> kill query processId;

Query parameter specifies that we need to kill query command process.

The syntax for kill process as follows

KILL [CONNECTION | QUERY] processlist_id

Please refer this link for more information.

like image 21
Shivam Kubde Avatar answered Sep 18 '22 09:09

Shivam Kubde