记录一次开发环境问题 MySQL trx_mysql_thread_id=0事务导致表死锁(未解决)

本文记录了一次处理MySQL服务出现死锁的情况,详细描述了从发现jdbc链接池无可用链接到解决由长时间运行的事务导致的死锁问题的过程。通过kill操作、重启尝试、日志检查以及最终删除异常事务日志文件ib_logfile0和ib_logfile1,成功恢复了MySQL服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###现象
1.服务出现jdbc链接池没有可用链接(获取连接等待超时)
2.show full processlist 发现存在该服务大量select 某表的query全部watting flush tables 一条请求flush table 一条请求open table
3.kill 掉flush table 请求后,在processlist中不再找到该请求,但是后续请求继续阻塞,kill 掉open table请求后,open table无限期处于killed状态,依旧获取不到锁
4.使用select 查询该表,无限期死锁
5.查询information_schema.INNODB_TRX;发现有一条三天前的事务,事务trx_mysql_thread_id=0 隔离级别read_uncommit 状态running 事务开启时间为9:03
6.解析binlog 该事务启动后,无任何9:03左右该事务的记录
7.xa recover; 无任何事务信息
8.查询INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 无任何记录
9.查询INFORMATION_SCHEMA.INNODB_LOCKS; 无任何记录
10.重启mysql,无法启动。
11.查看mysql启动日志, 处理事务文件ib_logfile0 ib_logfile1 ibdata1异常
12.查看网上方法,删除了事务文件及事务日志ib_logfile0 ib_logfile1
13.启动mysql 成功。

待后续深入学习mysql 回顾该问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值