MySQL出现Waiting for table metadata lock的原因以及解决方法(已亲测) ...

打印 上一主题 下一主题

主题 890|帖子 890|积分 2672

参考:MySQL出现Waiting for table metadata lock的原因以及解决方法 - digdeep - 博客园
当对表执行truncate\drop 操作时,会出现不绝处于等待的状态,通过show processlist可以看到TableA停滞在Waiting for table metadata lock的状态。kill 历程号之后,重新举行truncate还是出现等待状态, 通过 select * from information_schema.innodb_trx 找到未提交事物的sid, 然后 kill 掉,让其回滚。

产生Waiting for table metadata lock的原因其实很简单,一样平常是以下几个简单的场景:
场景一:长事物运行,阻塞DDL,继而阻塞所有同表的后续操作
场景二:未提交事物,阻塞DDL,继而阻塞所有同表的后续操作
场景三:
通过show processlist看不到TableA上有任何操作,在information_schema.innodb_trx中也没有任何举行中的事件。这很可能是由于在一个显式的事件中,对TableA举行了一个失败的操作(好比查询了一个不存在的字段),这时势务没有开始,但是失败语句获取到的锁依然有效,没有释放。从performance_schema.events_statements_current表中可以查到失败的语句。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表