当前位置: 代码网 > it编程>数据库>Mysql > mysql锁表确认及解除锁表的实现示例

mysql锁表确认及解除锁表的实现示例

2024年06月12日 Mysql 我要评论
一、查看表是否被锁一共3种方式1、查询库表命令information_schema库里的processlist表,存着正在进行的线程数据,可通过where条件模糊匹配执行sql中的表名来拿到该表的相关

一、查看表是否被锁

一共3种方式

1、查询库表命令

information_schema库里的processlist表,存着正在进行的线程数据,可通过where条件模糊匹配执行sql中的表名来拿到该表的相关线程数据。

通过查看state字段确认表是否被锁,可翻译或百度查看详细锁表原因。

select id,db,user,host,command,time,state,info
from information_schema.processlist
#where info like '%表名%'
order by time desc;

字段注释
id线程id标识,当锁表或进程卡死时可用kill杀掉
user当前连接用户
host显示当前线程命令发出的的客户端ip和端口号,用来追踪
db当前连接的数据库名
command连接状态,一般是休眠(sleep),查询(query),连接(connect)的命令的类型
time连接执行时间,单位是秒
state显示当前线程中sql语句的执行状态
info执行的sql语句

确认被锁后,用命令kill杀掉该线程来释放。

kill id;

2、连接工具直接查询

我这用navicat演示

通过查看state字段确认表是否被锁。

确认被锁后,用命令kill杀掉该线程来释放。

3、show processlist 命令

使用show processlist;查询命令来查看当前所有线程

show processlist;

也可添加full查看更详细的内容

show full processlist;

区别:

  • 如果不用full,则在info字段中只显示每个语句的前100个字符

这个命令要一条条数据查找,建议使用前两种才方法

查看info字段中的表名。

通过查看state字段确认表是否被锁。

确认被锁后,用命令kill杀掉该线程来释放。

二、解锁表

确认被锁后,用命令kill杀掉相关线程来释放。

kill 线程id;

到此这篇关于mysql 锁表确认及解除锁表的实现示例的文章就介绍到这了,更多相关mysql 锁表确认及解除锁表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com