更新mysql
后,我收到此错误
General error: 1205 Lock wait timeout exceeded; try restarting transaction;
之前没有收到错误,并且在此期间没有更改应用程序..
有时我必须重新启动mysql服务器才能获得对表行的写入权限。即使在几分钟/小时之后,该行仍然被锁定。它永远锁定
mysql 5.6.28
我可以显示所有进程并杀死一个正在睡觉的进程,但如果我必须每天多次手动执行此操作,这不是很方便
SHOW PROCESSLIST;
我杀死的最后一个进程已经运行了1300秒
如何调试问题?到目前为止,它一直是锁定行的表/查询
当用户登录时,锁定等待总是出现..所以我在登录操作中记录了所有写入SQL查询
2015-12-16 13:29 --- REQUEST: action login
2015-12-16 13:29 BEGIN
2015-12-16 13:29 INSERT `log_login` SET distributor_id=1,ip=3572642013,time=1450272590,is_error=0,is_client=1,is_distributor=0,is_supervisor=0,is_supervisor_internal=0,client_id=1,user_id=1,distributor_user_id=,supervisor_id=,screen_width=1920,screen_height=1080,country_id=57,city_id=569,browser_id=271,os_id=1
2015-12-16 13:29 UPDATE `client` SET time_log=1450272590 WHERE id=1 && distributor_id=1
2015-12-16 13:29 UPDATE `user` SET time_log=1450272590 WHERE id=1 && distributor_id=1 && client_id=1
2015-12-16 13:29 UPDATE `log_login` SET time_active=0 WHERE id=37771
2015-12-16 13:29 COMMIT
它看起来不像脚本多次写入client
表
当锁定等待出现时,这是锁定(client
)
2015-12-16 13:29 UPDATE `client` SET time_log=1450272590 WHERE id=1 && distributor_id=1