zoukankan      html  css  js  c++  java
  • mysql死锁总结

    1,查看数据库的隔离级别:
    mysql> select @@tx_isolation;
    2,去查看先当前库的线程情况:
    mysql> show processlist;

    没有看到正在执行的慢SQL记录线程,再去查看innodb的事务表INNODB_TRX,看下里面是否有正在锁定的事务线程,看看ID是否在show full processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。
    mysql> SELECT * FROM information_schema.INNODB_TRX;

    如果有记录,则找到trx_mysql_thread_id这个字段对应的id, 将其kill掉。假如id=100
    mysql->kill  100
    SELECT CONCAT_WS('','kill',' ',t.trx_mysql_thread_id,';')a FROM information_schema.INNODB_TRX t;

    解除死锁的两种方法:
    (1)终止(或撤销)进程。终止(或撤销)系统中的一个或多个死锁进程,直至打破循环环路,使系统从死锁状态中解除出来。
    (2)抢占资源。从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以打破死锁状态。

    郭慕荣博客园
  • 相关阅读:
    CodeForces Round #545 Div.2
    HDU 2222 Keywords Search
    拓扑排序
    CodeForces Round #553 Div2
    CodeForces Round #552 Div.3
    CodeForces Round #549 Div.2
    #Leetcode# 997. Find the Town Judge
    Educational Codeforces Round 62
    #Leetcode# 524. Longest Word in Dictionary through Deleting
    圆方树小结
  • 原文地址:https://www.cnblogs.com/jelly12345/p/14680341.html
Copyright © 2011-2022 走看看