千家信息网

如何分辨MySQL中的死锁和锁等待

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家介绍如何分辨MySQL中的死锁和锁等待,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。【数据库版本】MySQL5.7程序报错1205 Lock wat timeout
千家信息网最后更新 2025年01月22日如何分辨MySQL中的死锁和锁等待

这篇文章给大家介绍如何分辨MySQL中的死锁和锁等待,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

【数据库版本】MySQL5.7

程序报错1205 Lock wat timeout exceeded,以为是deadlock,其实是两个概念,说明死锁监控模块是没问题的。死锁监控到的是死锁,而不是锁等待。

报错信息如下:

SQLSTATEHY000]:General error: 1205 Lock wat timeout exceeded; try restarting transaction (SQL: UPDATE xx set xxx = 100 where id=1 and rock_id > 1)

1213 Deadlock found when trying to get lock; try restarting transaction

https://www.cnblogs.com/tartis/p/9366574.html

https://dev.mysql.com/doc/refman/8.0/en/innodb-deadlock-example.html

MySQL 5.7我们可以通过下面语句查询锁状态信息

SELECT   r.trx_id waiting_trx_id,  r.trx_mysql_thread_id waiting_thread,  r.trx_query waiting_query,  b.trx_id blocking_trx_id,  b.trx_mysql_thread_id blocking_thread,  b.trx_query blocking_query FROM  information_schema.`INNODB_LOCK_WAITS` w   INNER JOIN information_schema.`INNODB_TRX` b     ON b.`trx_id` = w.`blocking_trx_id`   INNER JOIN information_schema.`INNODB_TRX` r     ON r.`trx_id` = w.`requesting_trx_id`;

MySQL8.0 我们通过如下语句查看锁信息

select * from x$innodb_lock_waits;

关于如何分辨MySQL中的死锁和锁等待就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

死锁 信息 内容 更多 语句 帮助 监控 不错 两个 兴趣 可以通过 小伙 小伙伴 数据 数据库 文章 概念 模块 版本 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华为可信数据库考试 订阅号 连接数据库 网络软件开发合同范本专业版 上海智能化网络技术服务价目表 服务器raid有几种组合 会计转软件开发 软件开发和定制化的区别 wpf 实时提交数据库 班组网络安全 电网网络安全监控中心职责 长宁区创新数据库服务商收费标准 山东科技大学研究生院数据库 网络安全知识竞赛咋考了 网络安全保障宣传稿 软件开发快递查询 保障网络安全要以法治为根基 盛世芳华服务器繁忙如何处理 大数据及网络安全 方案 tmhmm在线数据库怎么用 数据库性能分析的任务是 linux网站服务器防护 网吧电脑是如何调用服务器资源 计算器软件开发是什么 洛阳网络安全保卫支队 吉林语音网络技术服务保障 四川什么是网络技术分类服务标准 临沂市河东区网络技术 职引网络技术公众号 临沂分销软件开发哪家做的好 软件开发公司趋势
0