mysql中使用update语句更新数据报错: Lock wait timeout exceeded; try restarting transaction。
这是由于你要更新的表的锁在其它线程手里。假设没有意外的话。非常可能是在事务线程中持有该锁,办法就是杀掉这条线程。
用 show full processlist 查询当前数据库全部线程
用 SELECT * FROM information_schema.INNODB_TRX 查询数据库事务表。当中trx_mysql_thread_id为事务线程的id,參照show full processlist命令中的线程信息。
使用命令:kill 事务线程id 杀掉它。比如:kill 99999
再用 show full processlist 查询当前数据库全部线程,发现刚才的线程没了。
最后再次运行更新语句。