1、Lock wait timeout exceeded; try restarting transaction的问题解决
解决办法:
a、# 查看当前的事务隔离级别
select @@transaction_isolation;
b、# 查看当前数据库的线程情况
SHOW FULL PROCESSLIST;
c、没有看到正在执行的很慢SQL记录线程,再去查看innodb的事务表INNODB_TRX,看下里面是否有正在锁定的事务线程,看看ID是否在show full processlist里面的sleep线程中,如果是,
就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。
SELECT * FROM information_schema.INNODB_TRX;
发现有id为2368649的sql,需要手动kill掉
KILL 2368649;
kill之后,再去执行上面的delete语句,就可以执行成功了。
5、查看Mysql中的自动提交事务的查询
show variables like 'autocommit';
select @@autocommit;