记一次处理MySql锁等待(Lock wait timeout exceeded)
环境 MySQL5.5 现象 A.数据更新或新增后数据经常自动回滚。 B.表操作总报 Lock wait timeout exceeded 并长时间无反应 解决方法 A.应急方法: show processlist; kill掉出现问题的进程 B.根治方法: select * from innodb_trx 查看有是哪些事务占据了表资源。 C.我的方法:设置MySQL锁等待超时 innodb_lock_wait_timeout=50 ,autocommit=on 该类问题导致原因 据我分析,Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit。导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded 接下来是转载的内容 转载: http://blog.sina.com.cn/s/blog_6bb63c9e0100s7cb.html MySQL 5.5 -- innodb_lock_wait 锁 等待 记得以前,当出现:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction, 要解决是一件麻烦的事情 ; 特别是当一个SQL执行完了,但未COMMIT,后面的SQL想要执行就是被锁