MySQL查看锁表和解除锁表

在MySQL中,可以使用`SHOWOPENTABLESWHEREIn_Use>0`来查看被锁定的表。若需解除锁表,可以找到连接ID通过`KILLCONNECTION<connection_id>`命令强制关闭,但需谨慎以防止数据丢失。首先应尝试使用`UNLOCKTABLES`命令。
摘要由CSDN通过智能技术生成

MySQL查看锁表和解除锁表

  • 作者:学为先编程 https://www.bilibili.com/read/cv22748304 出处:bilibili

show open tables

MySQL中可以使用以下命令查看当前被锁定的表和相关信息:

SHOW OPEN TABLES WHERE In_Use > 0; 
show open tables where in_use > 0;

-- 两个表,同时开启事务,同时更新,即可锁表
START TRANSACTION;
start transaction;

UPDATE blog 
SET title = 11 
WHERE
	id = 1;
  • 这会返回当前正在使用的表,其中In_Use列的值表示当前被锁定的连接数。
Database Table In_use Name_locked
test_01	blog	1			0

kill connection

如果需要解除锁定,可以使用以下命令强制关闭被锁定的连接:

KILL CONNECTION <connection_id>; 
kill connection

其中,<connection_id>为需要关闭的连接的ID。

show processlist

可以使用以下命令来查看当前连接的ID:

SHOW PROCESSLIST;
show processlist;

这会返回当前MySQL进程列表,其中包括每个连接的ID。

需要注意的是,在强制关闭连接之前,需要确保该连接没有正在进行的事务或操作,否则可能会导致数据丢失或数据库损坏。因此,在执行KILL CONNECTION命令之前,需要仔细检查当前连接的情况。同时,也建议在解除锁定之前,先尝试使用UNLOCK TABLES命令解除表的锁定,以避免不必要的数据丢失。

id  
User 		
Host		
db	
Command  
Time
State
Info

5	
event_scheduler	
localhost		
Daemon	
523420	
Waiting on empty queue	

-- 记录1 db为null,下面的db为:test_01
-- Info为null


9
root
localhost:65474	
test_01	Query	
16
updating	
UPDATE blog 

SET title = 11 
WHERE
	id = 1

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值