随笔 - 4  文章 - 0  评论 - 2  阅读 - 13826

记一次mysql数据库死锁排查

症状:进行表的ddl操作时,一直在loading,等待响应

怀疑锁表,查询进程表,发起的语句在等待被锁表

# show processlist;

进一步明确当前被锁定的表

# show open tables where in_use > 0;

果然是目标表

参考:https://blog.csdn.net/songxi_bo/article/details/121700745

优先检查是否有事务操作未提交

# select * from information_schema.innodb_trx;

找到确实有事务未提交,找到对应的进程id

回到进程表,找到目标进行,后续对该机器上的应用进行分析,这里要先关闭它

# show processlist;

# kill 1181;

删除后,ddl语句执行成功

 

后记:后续通过定位机器,找到对应的程序,仔细排查代码后,发现是该应用未及时释放connection导致,查询后释放就解决该问题。

 

posted on   AquariusSphere  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示