最近在操作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,瞬间完成。
在操作MySQL时遇到drop view命令长时间无响应,通过show processlist发现进程等待table metadata lock。进一步分析information_schema.innodb_trx表中异常事务,发现长期未结束的事务。使用kill命令终止异常进程,并设置lock_wait_timeout为1800秒,之后drop view操作顺利完成。
460

被折叠的 条评论
为什么被折叠?



