ToB企服应用市场:ToB评测及商务社交产业平台

标题: MySQL出现Waiting for table metadata lock的原因以及解决方法(已亲测) [打印本页]

作者: 南七星之家    时间: 7 小时前
标题: MySQL出现Waiting for table metadata lock的原因以及解决方法(已亲测)
参考: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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4