最近在操作mysql时,发现drop view一直执行没结果,
1、通过show processlist; 发现进程处于 “Waiting for table metadata lock”状态,
2、通过select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx;
发现有异常事务,譬如trx_started,事务执行的起始时间较长,则分析是否异常。
3、通过kill {processed};,杀掉异常进程。
4、通过set session lock_wait_timeout = 1800; set global lock_wait_timeout = 1800;
设置锁超时阈值lock_wait_timeout(单位秒)
重新执行drop view,瞬间完成。