MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,因为他们也会在Opening tables的阶段进入到Waiting for table metadata lock的锁等待队列。如果是生产环境的核心表出现了这样的锁等待队列,就会造成灾难性的后果,比如电商中的订单表。

遇到该种情况的解决方法:

1、show processlist

通过show processlist可以看到TableA上有正在进行的操作(包括读),此时alter table语句无法获取到metadata 独占锁,会进行等待。找到sid, 对应字段为id,直接kill

2、select * from information_schema.innodb_trx\G

通过select * from information_schema.innodb_trx\G

找到未提交的事务的sid, 对应字段为trx_mysql_thread_id, 直接kill

3、select * from performance_schema.events_statements_current;

通过show processlist看不到TableA上有任何操作,在information_schema.innodb_trx中也没有任何进行中的事务。这很可能是因为在一个显式的事务中,对TableA进行了一个失败的操作(比如查询了一个不存在的字段),这时事务没有开始,但是失败语句获取到的锁依然有效,没有释放。从performance_schema.events_statements_current表中可以查到失败的语句。

找到sid,对应字段为thread_id, 直接kill

4、lock_wait_timeout

最好的方式是设置过期时间,避免长时间metadata 锁等待

java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock相关推荐

  1. 【MySQL经典案例分析】 Waiting for table metadata lock

    本文由云+社区发表 一. 问题是这样来的 ​ 2018年某个周末,接到连续数据库的告警,告警信息如下: 二. 苦逼的探索过程 1.总体的思路 看到too many connection的报错信息,基本 ...

  2. 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃

    开篇语录:以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来.当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升 ...

  3. mysql出现waiting_MySQL出现Waiting for table metadata lock的原因以及解决方法

    MDL简述 ​ 为了在并发环境下维护表元数据的数据一致性,在表上有活动事务(显式或隐式)的时候,不可以对元数据进行写入操作.因此从MySQL5.5版本开始引入了MDL锁(metadata lock), ...

  4. MySQL执行查询语句时出现停滞状态,出现Waiting for table metadata lock的问题

    背景:今天在用python往MySQL中写入数据时,出现程序启动后运行很久,发现没动静,一去客户端查询数据库,也发现查询语句出现停滞状态,怀疑是表被锁了,下面是这次问题的解决过程. 问题现象: 等了很 ...

  5. MySQL出现Waiting for table metadata lock的原因以及解决方法

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...

  6. 【MySQL】MySQL出现Waiting for table metadata lock的原因、解决方法

    Waiting for table metadata lock MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景 ...

  7. 【转】【MySql】Waiting for table metadata lock原因分析

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景.而且,一旦alter table TableA的操作停滞在Wa ...

  8. mysql表被锁住/表打不开 Waiting for table metadata lock

    mysql表被锁住/表打不开 Waiting for table metadata lock 执行命令: SHOW PROCESSLIST; 如果发现State 字段是:Waiting for tab ...

  9. alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案

    在修改/增加表字段的时候,发现很慢, show processlist; 时, Waiting for table metadata lock 能一直锁很久. 官网的一段话,可以理解下 http:// ...

最新文章

  1. CentOS中vsftp安装与配置
  2. 算法------------ 最长公共前缀
  3. Java单向链表操作详解
  4. linux 压缩和解压缩(zip/unzip)
  5. HDU - 4757 Tree(LCA+可持久化trie树)
  6. DM6446开发攻略:V4L2视频驱动和应用分析
  7. 300 秒带你吃透大数据!
  8. [other] 代码量代码复杂度统计-lizard
  9. 简书的假想用户场景以及不同用户各自需要解决的烦恼
  10. SVM 学习心得
  11. Linux 服务器时区、时间校准,定时校准脚本
  12. Dell Inspiron 14 3437装win7系统没有网卡驱动解决办法
  13. Foxit PDF Editor(福昕阅读器)中插入新的PDF空白页方法
  14. python获取本机IP地址
  15. 一文搞懂this指向
  16. 使用Vant组件库,van-filed配置手机号验证规则
  17. 山东大学计算机学院复试名单,山东大学2012计算机学院拟录取名单。
  18. React——相关js库以及使用React开发者工具调试
  19. C语言简介之进制转换,原码、反码、补码,位运算符,函数
  20. LaTex使用方法和技巧——以IEEE会议论文模板为例

热门文章

  1. Beam Search
  2. Node.js 简单入门
  3. 王道考研 计算机网络笔记 第三章:数据链路层
  4. 基于TensorRT的BERT实时自然语言理解(上)
  5. 国内操作系统OS分析(上)
  6. DNC-cs6200 ospfv3
  7. RxJava debounce()和throttleWithTimeout()
  8. makefile学习(转载)
  9. meson 中调用shell script
  10. day042前端之HTML