嗯,跑項目突然報這個錯,請教了大佬:
轉載:https://blog.csdn.net/sonycong/article/details/90444375
Error updating database. Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
解決辦法:
第一種:
- 1.查詢是否鎖表
-
show OPEN TABLES where In_use > 0;
- 2.查詢進程(如果您有SUPER權限,您可以看到所有線程。否則,您只能看到您自己的線程)
-
show processlist
- id 為5的證明一直在等待資源。
- 3.殺死進程id(就是上面命令的id列)
kill id 5
第二種:
- 1.查看下在鎖的事務
-
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
- 2.殺死進程id(就是上面命令的trx_mysql_thread_id列)
-
kill 線程ID
- 例子:
- 查出死鎖進程:SHOW PROCESSLIST
- 殺掉進程 KILL 420821;
其它關於查看死鎖的命令:
1:查看當前的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
2:查看當前鎖定的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
3:查看當前等鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;