mysql锁表死锁了怎么办_mysql 表死锁

今天因为mysql导入数据,导致其中一张表死锁 下面来说说怎么解决死锁问题 1.先说明一下导致mysql 死锁的四个条件 互斥条件:就是一个资源只能有一个进程占有,不可以被两

今天因为mysql导入数据,导致其中一张表死锁 下面来说说怎么解决死锁问题

1.先说明一下导致mysql 死锁的四个条件

互斥条件:就是一个资源只能有一个进程占有,不可以被两个或者多个进程占有

不可抢占条件:进程已经获得的资源在未使用完之前,不可以被抢占,只能在使用完之后自己释放

占有申请条件:进程自己已经至少保持一个资源,又请求其他资源,但是这个资源被其他进程占有,而且又不释放自己已经占有的资源

循环等待条件:发生死锁时,必定会形成一个进程——资源的环路。进程集合{p1,p2,p3}中,p1请求p2占有的资源,p2请求p3占有的资源,p3请求p1占有的资源

解决死锁的方案

第一种:

1.查询是否锁表

show OPEN TABLES where In_use > 0;

2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)

show processlist

3.杀死进程id(就是上面命令的id列)

kill id

第二种:

1.查看下在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2.杀死进程id(就是上面命令的trx_mysql_thread_id列)

kill 线程ID

发布者:admin,转转请注明出处:http://www.yc00.com/web/1740118674a4192607.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信