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:如果觉得有帮助,可以点个赞支持下么?蟹蟹~~~