我有一个查询锁定表在MySQL(使用的是InnoDB):查询锁定表,不能杀死进程
UPDATE table SET status = 2 WHERE status = 3
这个查询引起死锁在桌子上,无法绕过它。
我试图做的:
show processlist
然后杀死进程ID,但我不能似乎将其杀死
我想:
kill 9588
9588是进程ID。
然后我做show processlist
我仍然在列表中看到相同的查询。
我该如何强制杀死这个进程,然后为什么这个查询会导致死锁?我该如何解决它?
'杀-9'是操作系统命令,而不是一个MySQL命令。 – tadman 2013-04-10 17:05:29
如果'UPDATE'无法获得任何'status = 3'行的写访问权限,它将会被阻止。我会确保所有的交易都已经提交了他们的变更,并且您没有任何确定'select for update' – cmd 2013-04-10 17:07:20