1、查询是否锁表
show open tables where in_use>0;
2、查询进程
show processlist
查询到相对应的进程,然后kill id
3、查看正在锁的事务:
select * from information_schema.INNODB_LOCKS;
select * from information_schema.INNODB_TRX;
4、查看等待锁的事务 看看ID是否在show processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了
select * from information_schema.INNODB_LOCK_WAITS;
SELECT
	a.trx_id '事务id',
	a.trx_mysqL_thread_id '事务线程id',
	a.trx_query '事务SQL'
FROM
	information_schema.INNODB_LOCKS b,
	information_schema.INNODB_TRX a 
WHERE
	b.lock_trx_id = a.trx_id;
SELECT
CONCAT('KILL',a.trx_mysqL_thread_id,';')
FROM
    information_schema.INNODB_LOCKS b,
    information_schema.INNODB_TRX a 
WHERE
    b.lock_trx_id = a.trx_id;