程序奔溃导致mysql事务未提交

> SHOW ENGINE INNODB STATUS;
RANSACTIONS
------------
Trx id counter 74862
Purge done for trx's n:o < 74862 undo n:o < 0 state: running but idle
History list length 2
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 421544929007128, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929006320, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929002280, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929000664, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929005512, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929001472, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929004704, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544929003896, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544928999856, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 421544928999048, not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION 74858, ACTIVE 64 sec
2 lock struct(s), heap size 1128, 1 row lock(s)
MySQL thread id 46163, OS thread handle 140069038933568, query id 2915675 

可以发现有一个事务活跃64s, 线程是46163
通过show processlist,找到对应的线程kill

本作品采用《CC 协议》,转载必须注明作者和本文链接
走出舒适区
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

可以设置超时自动回滚

1年前 评论
Smilephp (作者) 1年前
Runtoweb3 (楼主) 1年前
Smilephp (作者) 1年前
Runtoweb3 (楼主) 1年前

try catch rollback不好使吗?mysql.ini中设置innodb_lock_wait_timeout.

1年前 评论
Runtoweb3 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!