mysql>show proccesslist ;
mysql>kill progress_id; #proccess_id 即show proccesslist 查询出来的id
但对于锁线程来说,其状态为sleep,所以找其id 用proccesslist看不出来,
但可用sys系统库里的performance_schema (MySQL5.6开始默认启用,相比于设置为 off 会有 10% 左右的性能损失)
通过 sys.schema_table_lock_waits 查表锁 ,找出造成阻塞的 process id ,把这个连接用 kill 命令断开即可:
mysql>select blocking_pid from sys.schema_table_lock_waits ;
mysql>kill blocking_pid;
通过 sys.innodb_lock_waits 查行锁
可以通过 sys.innodb_lock_waits 表查到 # MySQL 5.7
mysql>select * from sys.innodb_lock_waits where locked_table=`'test'.'t'`\G
mysql>kill blocking_pid;