前言
最近遇到一个mysql锁表的情况,处理过程做一个帖子记录
#####ps:使用hesql工具更改一个表的字段属性,发现工具崩了,重启几次还是一样,怀疑mysql的某个表被锁
1:查询是否有锁表情况
show OPEN TABLES where In_use > 0;
2:如果有锁表,看看是哪条语句在锁表并且其他等待执行的
show processlist ;
-
command 为waitting的就是锁住的表,info为执行某条语句的信息,id为进程。
-
info内容: Waiting for table metadata lock
有些时候不是锁表,而是进程占用:select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx
3:kill掉锁表的进程ID
kill id;