今天在公司修复一个小bug,一个数据在修改后没有实时的存储起来,直接改代码,修改后通过mysql语句存储起来,但是测试的时候,mysql老是存储不成功,明明看到sql语句已经执行但是通过连到数据库去看,数据还是没有更新 。然后通过看代码,原来mysql查询没成功,返回1205错误,网上一查 Lock wait; try大概原因是死锁了,上一个事务一直没有提交,导致一直在那等待 。
先看下mysql线程 show,由于是开发测试机,连接太多了,根本不好看到我的连接 。直接使用mysql语句查看
select id,user,host,db,Command,State,time from information_schema.processlist where db='我的数据库';
没有看到正在执行的慢查询,网上搜索说可以查.这张表,可以直接看到死锁的状态,但是,貌似.5以上才有,我们用的5.1,悲剧 。
后来发现凡是涉及到那张表的操作全返回1205,那肯定是死锁了 。仔细看上面的连接线程,有两个host不一样,且其一直是sleep状态,很有可能就是开始事务后,没有提交,一直sleep了 。而且那两个连接就是通过我本机连到的数据库,有可能我在中有些误操作,然后又不管了强制关闭了 。可以试试直接kill这些线程 。
【处理 mysql error 1205】直接kill 上面的线程,mysql语句执行成功了!!
- 下山桩怎么处理成活率高
- 《西游记》天庭对于男女私通问题一般如何处理?
- 美人椒种植栽培技术
- 14是什么处理器
- 三星猎户座9825处理器相当于骁龙多少
- 生蚝怎么处理干净内脏视频 生蚝怎么处理干净内脏
- 旧电脑怎么处理才安全 旧电脑怎么处理
- 葡萄枝条怎么插活
- 生活用水的来源及处理措施 生活用水的来源及处理
- 篮球双方犯规球权怎么处理 双方犯规球权怎么处理