【问题描述】:Mysql5.6的主从环境,在主库上添加字段始终添加不了,一直没有返回值。
【排查分析】:
1、在测试环境上执行没有问题,很快就返回。因为数据量不大,也就10w左右(线上也是10w左右)
2、在执行alter语句时,在另外的终端通过show processlist发现 有等待TML锁

3、通过如下sql查线程ID

SELECT distinct b.trx_id blocking_trx_id,
b.trx_mysql_thread_id 源头锁thread_id,
SUBSTRING(p. HOST, 1, INSTR(p. HOST, ':') - 1) blocking_host,
SUBSTRING(p. HOST, INSTR(p. HOST, ':') + 1) blocking_port,
IF(p.COMMAND = 'Sleep', p.TIME, 0) idel_in_trx,
b.trx_query blocking_query,
r.trx_id waiting_trx_id,
r.trx_mysql_thread_id waiting_thread,
TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) wait_time,
r.trx_query waiting_query,
l.lock_table waiting_table_lock
FROM information_schema.INNODB_LOCKS l
LEFT JOIN information_schema.INNODB_LOCK_WAITS w
ON w.requested_lock_id = l.lock_id
LEFT JOIN information_schema.INNODB_TRX b
ON b.trx_id = w.blocking_trx_id
LEFT JOIN information_schema.INNODB_TRX r
ON r.trx_id = w.requesting_trx_id
LEFT JOIN information_schema. PROCESSLIST p
ON p.ID = b.trx_mysql_thread_id
ORDER BY wait_time DESC;

如果没有返回值 ,使用下面的sql来查:

select i.trx_mysql_thread_id
from  information_schema.innodb_trx i,(select id, timefrominformation_schema.processlistwheretime = (select max(time)frominformation_schema.processlistwherestate = 'Waiting for table metadata lock'and substring(info, 1, 5) in ('alter' , 'optim', 'repai', 'lock ', 'drop ', 'creat'))) pwhere timestampdiff(second, i.trx_started, now()) > p.timeand i.trx_mysql_thread_id  not in (connection_id(),p.id);

根据返回的结果继续查相关的session:
select * from information_schema.processlist where id=104018;

可以根据情况对该会话进行处理。

转载于:https://blog.51cto.com/zhaowl/2343516

Waiting for table metadata lock相关推荐

  1. java连接mysql执行ddl_Mysql 执行DDL导致Waiting for table metadata lock

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

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

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

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

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

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

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

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

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

  6. 记一次MySQL中Waiting for table metadata lock的解决方法

    记一次MySQL中Waiting for table metadata lock的解决方法 参考文章: (1)记一次MySQL中Waiting for table metadata lock的解决方法 ...

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

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

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

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

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

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

最新文章

  1. JS 小数的常用处理方法
  2. birt脚本for循环语句_python循环语句(while amp; for)
  3. python3迭代器和可迭代对象,Python3学习(8)--迭代,可迭代的和迭代器
  4. 在机器学习中,ground truth是什么意思?
  5. java 确定对象的引用_JVM学习笔记之了解对象存活判断和4种引用【三】
  6. thrift的lua实现
  7. js的eval代码快速解密
  8. 计算机原理实验交通灯自动控制系统设计,微机原理交通灯控制系统设计实验..doc...
  9. 实名寻人搜索引擎app_谷歌搜索引擎寻人
  10. [汇编] 在屏幕中央显示时钟
  11. 聊一下盲盒app开发 盲盒小程序开发
  12. 计算机科学导论 -- 第一章 绪论
  13. 从柯布-道格拉斯生产函数看云计算对传统软件工程的影响
  14. x2000 ffmpeg avcodec_send_packet
  15. 淘宝/天猫API接口,买家卖家订单信息获取
  16. 修改3389远程端口号
  17. Python爬虫:js加密实例-有道翻译
  18. 车载仪表android方案,基于NXP iMX8QM 汽车仪表+车载娱乐双作业系统解决方案
  19. 拍卖网html模板,html5织梦高端复古婚纱/影楼/摄影工作室网站模板
  20. Unity 2D游戏 粒子系统在Game窗口不显示

热门文章

  1. 转载:Yahoo推出视频标签游戏
  2. 【性能优化】 之性能视图及性能参数
  3. android activity切换动画
  4. socket的系统调用
  5. 软件测试工程师需要具备哪些能力
  6. sql server版本特性简介、版本介绍简介
  7. SimpleDateFormat非线程安全
  8. COGS 930. [河南省队2012] 找第k小的数 主席树
  9. canvas图像保存
  10. 编程之美 set 12 快速找出故障机器