步骤一
使用 SHOW OPEN TABLES
命令: 这个命令可以显示哪些表当前正在被使用,以及它们的使用状态。特别关注 In_use
列,它表示表当前被锁的数量。如果 In_use > 0
,则表被至少一个线程锁定。
SHOW OPEN TABLES WHERE In_use > 0;
步骤二:
使用 SHOW PROCESSLIST
: 此命令可以显示当前所有连接和它们的状态,包括正在执行的查 询。你可以通过这个列表找到可能引起锁等待的查询。
SHOW FULL PROCESSLIST;
步骤三:
使用 KILL
命令: 如果锁是由其他会话引起的,并且导致了问题,可以考虑使用 KILL
命令终止 那个会话。首先,使用 SHOW PROCESSLIST
查找导致锁的线程ID,然后使用 KILL
命令终止该线程。