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 查询当前数据库全部线程,发现刚才的线程没了。

最后再次运行更新语句。