系列文章目录

第一章:sql_mode模式
第二章:optimize table、analyze table、alter table、gh-ost
第三章:InnoDB MVCC原理
第四章:sql语句执行过程
第五章:Percona Toolkit工具简介
第六章:MySQL索引
第七章:MySQL的锁
第八章:MySQL加锁分析
第九章:MySQL死锁排查步骤


文章目录

  • 系列文章目录
  • 前言
  • 一、线上环境
    • 1.查看最后一次死锁情况
    • 2. error 日志
  • 二、开发环境
    • 1.发生死锁时
    • 2.分析锁定范围

前言

MySQL死锁偶尔出现在线上或者开发环境,可以通过如下方法排查死锁问题。

一、线上环境

1.查看最后一次死锁情况

show engine innodb status\G


可以根据执行的sql,反推锁定的语句。

2. error 日志

/etc/my.cnf 文件中修改或增加配置,注意增加的位置[mysqld] 的下面,否则无效;

innodb_print_all_deadlocks = ON

error日志的路径可以通过如下sql查看:

SHOW VARIABLES LIKE 'log_error';

这样就可以通过错误日志分析排查mysql死锁

二、开发环境

1.发生死锁时

SELECTa.trx_id,d.SQL_TEXT,a.trx_state,a.trx_started,a.trx_query,b.ID,b.USER,b.DB,b.COMMAND,b.TIME,b.STATE,b.INFO,c.PROCESSLIST_USER,c.PROCESSLIST_HOST,c.PROCESSLIST_DB
FROMinformation_schema.INNODB_TRX aLEFT JOIN information_schema.PROCESSLIST b ON a.trx_mysql_thread_id = b.id LEFT JOIN PERFORMANCE_SCHEMA.threads c ON b.id = c.PROCESSLIST_IDLEFT JOIN PERFORMANCE_SCHEMA.events_statements_current d ON d.THREAD_ID = c.THREAD_ID;

可以看到当前处于锁等待的语句。

2.分析锁定范围

SELECT ENGINE,ENGINE_TRANSACTION_ID,THREAD_ID,EVENT_ID,OBJECT_SCHEMA,OBJECT_NAME,INDEX_NAME,LOCK_TYPE, LOCK_MODE,LOCK_STATUS,LOCK_DATA FROM performance_schema.data_locks;

MySQL死锁排查步骤相关推荐

  1. mysql查询死锁的次数_一次神奇的MySQL死锁排查记录

    一次神奇的MySQL死锁排查记录 发布时间:2020-08-29 00:50:26 来源:脚本之家 阅读:135 作者:咖啡拿铁 背景 说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对 ...

  2. Mysql死锁排查及解决办法

    Mysql死锁排查及解决办法 1. 查看当前被锁的表 show OPEN TABLES where In_use > 0; +----------+-------+--------+------ ...

  3. mysql死锁语句_记一次神奇的Mysql死锁排查

    背景 说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对于一些基本的Mysql锁或者死锁都有一个简单的认识,可以看下这篇文章为什么开发人员需要了解数据库锁.有了上面的经验之后,本以为对于 ...

  4. mysql死锁的排查方法_MySQL死锁系列-线上死锁问题排查思路

    前言 MySQL 死锁异常是我们经常会遇到的线上异常类别,一旦线上业务日间复杂,各种业务操作之间往往会产生锁冲突,有些会导致死锁异常.这种死锁异常一般要在特定时间特定数据和特定业务操作才会复现,并且分 ...

  5. go语言 mysql卡死_一次mysql死锁的排查过程-Go语言中文社区

    一次mysql死锁的排查过程一.背景17号晚上要吃饭了,看旁边的妹子和佐哥还在调代码,就问了下什么问题啊,还在弄,妹子说,在测试环境测试给用户并发发送卡券时,出现了死锁,但看代码没有死锁,问题如下图 ...

  6. java线程死锁 cpu 100%_Java死锁排查和Java CPU 100% 排查的步骤整理

    工欲善其事,必先利其器 简介 本篇整理两个排查问题的简单技巧,一个是java死锁排查,这个一般在面试的时会问到,如果没有写多线程的话,实际中遇到的机会不多:第二个是java cpu 100%排查,这个 ...

  7. MySQL死锁如何处理

    转载自  MySQL死锁如何处理 前提 笔者负责的一个系统最近有新功能上线后突然在预警模块不定时报出MySQL死锁导致事务回滚.幸亏,上游系统采用了异步推送和同步查询结合的方式,感知到推送失败及时进行 ...

  8. 浅析MySQL死锁检测

    MySQL发生死锁时,通过show engine innodb status;命令并不能看到事务中引起死锁的所有SQL语句. 死锁排查起来就比较麻烦,需要查询events_statements_%表, ...

  9. mysql 死锁监控_mysql 死锁

    MySQL复制slave服务器死锁案例 原文:MySQL复制slave服务器死锁案例 MySQL复制刚刚触发了一个bug,该bug的触发条件是slave上Xtrabackup备份的时候执行flushs ...

最新文章

  1. Android之linux基础教学之八 内核同步介绍
  2. 第7周实践项目2.2 求解报数问题
  3. 并不是所有的 Github 项目写在简历上都加分
  4. Saber2016安装包和安装详细安装步骤
  5. 韩信大招:一致性哈希
  6. mybatis的xml文件 比较详细的学习注意点
  7. Python查找包含指定字符串的所有文件
  8. Android(java)学习笔记51:ScrollView用法
  9. 最优化方法——梯度下降法、牛顿法、LM算法
  10. 豆瓣9.6分,Scala编程圣经第5版隆重来袭
  11. 键盘精灵 android,「安卓按键精灵」使用按键发送邮件
  12. GRADS软件初步学习
  13. qt_翻译文件常用缩写
  14. 猿创征文|我的技术成长之路C++
  15. html_09网页超链接
  16. Python sorted Pandas sort_values 中文拼音排序
  17. 利用JS来设计夜场的倒计时以及进入页面
  18. 2021年茶艺师(中级)考试报名及茶艺师(中级)新版试题
  19. 约瑟夫问题与魔术(十)——魔术《完全控制》
  20. GHOST系统备份图解

热门文章

  1. 拆分系统拆分盘盛出不穷,互助系统的延续走出新的路子,农场果园直销系统返利系统开始火了!
  2. ECMAscript学习笔记(01)
  3. R语言——swirl包学习ggplot2 (一)
  4. 安卓性能优化—使用ArrayMap与SparseArray
  5. linux怎么挂载ext4
  6. ns3加入模块之vanet-highway
  7. qlu_新生赛_2019
  8. 火车站临时身份证明窗口位置。
  9. 彩票软件中热温冷算法的实现情况
  10. 大淘宝技术行业FaaS化实战经验分享