场景:同事反馈给某表加索引时,数据库GUI卡死,N秒后界面显示
lock wait timeout exceeded; try restarting transaction
排查三剑客
select * from information_schema.innodb_locks; (当前出现的锁)
select * from information_schema.innodb_lock_waits; (锁等待的对应关系)
select * from information_schema.innodb_trx; (当前运行的所有事务)
大结局
最后发现在 innodb_trx的trx_query字段里有涉及到这张表,最后kill掉该行对应的 trx_mysql_thread_id,
解决问题。
结尾
最后顺便附上这三张表的表结构:
information_schema.innodb_locks
information_schema.innodb_lock_waits
information_schema.innodb_trx
Comments | NOTHING