解决mysql提交事务Lock wait timeout; try restarting transaction

mysql事务未提交导致MySQLTransactionRollbackException: Lock wait timeout

大多数事务未提交都是因为某个持久层进行操作时没有完成相应的写入或读出动作导致的,开启事务的时候不能自动完成提交。

向数据库中插入头像数据出错了,报的是事务回滚异常
在这里插入图片描述
可以看到,我的是在业务层的实现类中出错了
在这里插入图片描述

两种解决方案
解决方案1
1 检查INFORMATION_SCHEMA.INNODB_TRX表

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2 查看trx_state
有Running和Locked

3 找到trx_mysql_thread_id
这就是响应的进程号

4 输入kill trx_mysql_thread_id
例如:

kill 54136

解决方案2
检查是否为数据库该字段的长度问题。
在这里插入图片描述

我先是按照第一种解决方案来尝试,发现没有解决问题,然后我又检查了一下数据库中head_Sculpture的字段长度为45,但是实际字符串长度远大于45
在这里插入图片描述

所以将长度varchar(45)改为varchar(255),完美结局问题。

ps:如果觉得有帮助,可以点个赞支持下么?蟹蟹~~~在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值