设为首页 收藏本站
查看: 669|回复: 0

[经验分享] MySQL死锁

[复制链接]

尚未签到

发表于 2018-9-30 11:00:54 | 显示全部楼层 |阅读模式
  一、查看MySQL死锁
  

MySQL数据库会自己解决死锁,kill掉一个session的事务,让另外一个session的事务可以执行  

  SQL>SHOW ENGINE INNODB STATUS\G
  

  LATEST DETECTED DEADLOCK
  

  2018-02-12 15:42:06 0x7f6bd43df700
   (1) TRANSACTION:
  TRANSACTION 3368, ACTIVE 16717 sec starting index read
  mysql tables in use 1, locked 1

  LOCK WAIT 7 lock struct(s), heap>
  MySQL thread>  delete from  employees  where emp_no=10001
  (1) WAITING FOR THIS LOCK TO BE GRANTED:

  RECORD LOCKS space>employees.employees trx>  Record lock, heap no 2 PHYSICAL RECORD: n_fields 8; compact format; info bits 0
  0: len 4; hex 80002711; asc   ' ;;
  1: len 6; hex 000000000b20; asc       ;;
  2: len 7; hex be0000013a0110; asc     :  ;;
  3: len 3; hex 8f4322; asc  C";;
  4: len 6; hex 47656f726769; asc Georgi;;

  5: len 7; hex 466163656c6c6f; asc>  6: len 1; hex 01; asc  ;;
  7: len 3; hex 8f84da; asc    ;;
   (2) TRANSACTION:
  TRANSACTION 3374, ACTIVE 79 sec starting index read
  mysql tables in use 1, locked 1

  4 lock struct(s), heap>
  MySQL thread>  delete from  employees  where emp_no=10001
  (2) HOLDS THE LOCK(S):

  RECORD LOCKS space>employees.employees trx>  Record lock, heap no 2 PHYSICAL RECORD: n_fields 8; compact format; info bits 0
  0: len 4; hex 80002711; asc   ' ;;
  1: len 6; hex 000000000b20; asc       ;;
  2: len 7; hex be0000013a0110; asc     :  ;;
  3: len 3; hex 8f4322; asc  C";;
  4: len 6; hex 47656f726769; asc Georgi;;

  5: len 7; hex 466163656c6c6f; asc>  6: len 1; hex 01; asc  ;;
  7: len 3; hex 8f84da; asc    ;;
  *** (2) WAITING FOR THIS LOCK TO BE GRANTED:

  RECORD LOCKS space>employees.employees trx>  Record lock, heap no 2 PHYSICAL RECORD: n_fields 8; compact format; info bits 0
  0: len 4; hex 80002711; asc   ' ;;
  1: len 6; hex 000000000b20; asc       ;;
  2: len 7; hex be0000013a0110; asc     :  ;;
  3: len 3; hex 8f4322; asc  C";;
  4: len 6; hex 47656f726769; asc Georgi;;

  5: len 7; hex 466163656c6c6f; asc>  6: len 1; hex 01; asc  ;;
  7: len 3; hex 8f84da; asc    ;;
  *** WE ROLL BACK TRANSACTION (2)
  注意:死锁不记录在错误日志中,只能通过 SHOW ENGINE INNODB STATUS\G查看,而且 SHOW ENGINE INNODB STATUS\G只会记录上一次的死锁,如果要看上上次的则看不到
  死锁模拟
  session1:
  mysql> begin;
  Query OK, 0 rows affected (0.00 sec)
  mysql> select * from employees  where emp_no=10001 lock in share mode;
  +--------+------------+------------+-----------+--------+------------+
  | emp_no | birth_date | first_name | last_name | gender | hire_date  |
  +--------+------------+------------+-----------+--------+------------+

  |  10001 | 1953-09-02 | Georgi     |>  +--------+------------+------------+-----------+--------+------------+
  1 row in set (0.00 sec)
  session2:
  mysql> delete from  employees  where emp_no=10001;  -- 卡住
  session1:
  mysql> delete from  employees  where emp_no=10001;
  ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
  session2:
  上面卡住的语句已经被执行
  Query OK, 1 row affected (5.76 sec)
  死锁分析:
  session1持有s锁,session2执行删除操作请求x,但s、x互斥,session2进入请求队列等待(等待session1释放s锁),session1又在请求x锁,这个时候队列中session2在排队,还轮不上session1,session1就等待,这种循环等待出现,死锁就出现了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606655-1-1.html 上篇帖子: MySql Database 备份(Percona XtraBackup) 下篇帖子: mysql查询锁
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表