数据库表操作时出去死锁或卡主,最好的解决方法。。。。

就是利用可视化工具,先复制这张表,然后在删除卡死的那张表,最后将复制的表重命名即可。

出现卡死的原因可能是:

    1、频繁的对某张表的字段进行操作,比如修改他的大小或数据类型啥的,可能就会导致出现锁表或卡死的状态。

    2、若发现对某张表进行的某个字段进行操作时,卡死了,先去试试其他字段,或者其他表的字段看可不可以修改,若可以修改,怎就按照上面的办法,先复制,在删除,最后重命名。

还有一种方法:

  利用可视化工具Navicat,按F6进行命令行,然后使用命令查看进程:

  >show full processlist;  //列出进程,找出处于waiting的process,要杀死这些process

  >kill ID;       //ID 就是上面查出来的第一列的进程ID

还有就是:

MySQL事务锁问题-Lock wait timeout exceeded

    查看当前运行的所有事物:

  mysql>  SELECT * FROM information_schema.INNODB_TRX; 
  将查询出来的结果复制粘贴出来,放在NotePad++ 这样的编辑工具里面,然后找到线程杀死即可;

解释:看事务表INNODB_TRX,里面是否有正在锁定的事务线程,看看ID是否在show processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。

搜索的结果是在事务表发现了很多任务,这时候最好都kill掉。

以上部分来源: https://cloud.tencent.com/developer/article/1356959

 

原文地址:https://www.cnblogs.com/vhviqd/p/10848240.html