大牛?无他,唯手熟尔!

MySQL之Lock wait timeout exceeded try restarting transaction解决

摘要:mysql出现报错:Lock wait timeout exceeded; try restarting transaction如何解决?一、找到死锁进程;二、杀掉进程;三、排查造成该问题的原因。

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/130.html

mysql报错信息:

### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:259)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447)
	at com.sun.proxy.$Proxy19.update(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:295)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)

问题关键词:

Lock wait timeout exceeded,try restarting transaction

问题分析:

此批数据上一波操作没有结束,且发生了死锁

问题解决:

一、找到死锁任务

select * from information_schema.INNODB_TRX

QQ截图20220222134243.png

二、杀掉进程

此处敲黑板:要杀掉的进程号是trx_mysql_thread_id对应的值不是trx_id,不是trx_id,不是trx_id!!!

kill 633

三、排查代码

排查代码,分析日志,找到造成该问题的原因,代码该优化优化,避免再次出现。

双11云服务器热购推广(腾讯云):2核+4G内存+3M带宽=688元/3年(仅限新用户)

除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/130.html

上一篇:巧用type命令改变文件md5        下一篇:layui的switch开关在关闭状态下的传值问题
网友评论,共0 发表评论
昵称:
评论:
验证码: 刷新验证码
双11云服务器热购
    购买建议:带宽不用太高了,1M就够用,多考虑内存。