记一次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导致,查询后释放就解决该问题。
分类:
数据库技术 / Mysql
标签:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人