Mysql中怎么查看死锁和解除锁

发布时间:2021-06-22 17:43:11 作者:Leah
来源:亿速云 阅读:313

这篇文章将为大家详细讲解有关Mysql中怎么查看死锁和解除锁,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

第一种杀死会话:

1.查询是否锁表

show OPEN TABLES where In_use > 0;

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

show processlist

或者查询出所有需要Killd的Id;

select concat('KILL ',id,';') from information_schema.processlist where user='root';

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

kill id

第二种杀死事务:

1.查看下在锁的事务 

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

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

kill 线程ID

例子:

查出死锁进程:SHOW PROCESSLIST

杀掉进程          KILL 420821;

其它关于查看死锁的命令:

1:查看当前的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:查看当前锁定的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看当前等锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

下面是理论知识:

会话和事务线程的关系

1、会话可以创建多个事务

比如:使用客端连接数据库,这样你就可以执行很多个事务了

2、一个事务只能由一个会话产生

在数据库里的事务,如果在执行的SQL都是由会话发起的,哪怕是自动执行的JOB也是由系统会话发起的

3、一个事务可能会产生一个或多个线程

比如RMAN备份,是可以创建多个线程可加快备份速度

4、一个线程在同一时间内只能执行一个事务

而一个线程,在没结束当前事务是无法释放资源来执行第二个事务

connection和session的定义和区别:

1.连接(connection)是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或调度器(Shared Server)的一个网络连接。

2.会话(session)是一个逻辑的概念,它是存在于实例中。

注:创建一个连接(connection)实际上是在某个实例(instance,或者说是进程)中创建一个或多个线程。

两者关系:

关于Mysql中怎么查看死锁和解除锁就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. db2死锁和锁超时
  2. Oracle 查看锁和释放锁

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:mysql中怎么开启慢查询

下一篇:linux中怎么开启审计功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》