MySql中怎样查询表是否被锁

 更新时间:2023年07月27日 10:42:01   作者:奋斗·小青年  
这篇文章主要介绍了MySql中怎样查询表是否被锁问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

MySql查询表是否被锁

查看表被锁状态

# 查询哪些表锁了
show OPEN TABLES where In_use > 0;

查看造成死锁的sql语句

# 查询innodb引擎的运行时信息
show engine innodb status;

查询进程

# 查询所有进程
show processlist;

解锁(删除进程)

# 删除进程
kill id;

查看正在执行的事务

# 查看正在执行的事务
select * from information_schema.INNODB_TRX;

查看正在锁的事物

# 查看正在锁的事物
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS

查看等待锁的事物

# 查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

MySql出现数据库表被锁解决方案

出现的现象

页面出现502错误,数据库CPU持续飙升,大量事务堆积未提交成功(事务一直处于阻塞阶段)

查看阻塞事务列表,发现其中有锁表现象。

排查与解决思路

1)查看数据库中是否有表被锁

show open tables where in_use > 0;

如果上述返回有结果,说明有表正在被使用,返回字段如下

| Database | Table | In_use | Name_locked |

2)查看进程(只会显示当前用户的进程,除非是root用户)

show processlist;

3)查看当前运行所有事务

SELECT * FROM information_schema.INNODB_TRX;

4)查看当前出现的所有锁

SELECT * FROM information_schema.INNODB_LOCKs;

5)查询锁等待的对应关系

SELECT * FROM information_schema.INNODB_LOCK_waits;

查看事务表 INNODB_TRX中 是否有正在锁定的事务线程

确认 ID 是否在 show processlist 的 sleep 线程中:如果在,说明这个sleep的线程事务一直没有commit 或者 rollback,而是卡住了,需要手动kill掉。

搜索的结果中,如果在事务表发现了很多任务,最好都 kill 掉。

6)清理事务指定的线程 ID

kill 1234;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Mysql服务器的安装配置与启动关闭方法详解

    Mysql服务器的安装配置与启动关闭方法详解

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一
    2021-10-10
  • mysql的日期和时间函数

    mysql的日期和时间函数

    mysql的日期和时间函数 这里是一个使用日期函数的例子。
    2010-11-11
  • Mysql离线安装8.0.26的图文教程

    Mysql离线安装8.0.26的图文教程

    这篇文章主要介绍了Mysql离线安装8.0.26的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • CentOS 6.4下编译安装MySQL5.6.14教程

    CentOS 6.4下编译安装MySQL5.6.14教程

    这篇文章主要为大家详细介绍了CentOS 6.4下编译安装MySQL 5.6.14教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 详解mysql5.7密码忘记解决方法

    详解mysql5.7密码忘记解决方法

    这篇文章主要介绍了mysql5.7密码忘记解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • mysql 事务解析

    mysql 事务解析

    这篇文章主要给大家分享的是mysql事务解析,事务(transaction)是业务逻辑的一个基本的单元组成,下面文章围绕mysql事务的相关资料展开详细内容,需要的朋友可以参考一下希望对大家有所帮助
    2021-11-11
  • mysql启动提示mysql.host 不存在,启动失败的解决方法

    mysql启动提示mysql.host 不存在,启动失败的解决方法

    我将s9当众原来的mysql4.0删除后,重新装了个mysql5.0,启动过程中报一下错误,启动失败,查了一下群里面的老帖子也没有个具体的明确说明
    2011-10-10
  • 使用SQL将多行记录合并成一行实例代码

    使用SQL将多行记录合并成一行实例代码

    今天同事问了一个需求,就是将多行数据合并成一行进行显示,查询了一些资料,这篇文章主要给大家介绍了关于使用SQL将多行记录合并成一行的相关资料,需要的朋友可以参考下
    2022-09-09
  • mysql导入csv的4种报错的解决方法

    mysql导入csv的4种报错的解决方法

    这篇文章主要介绍了mysql导入csv的4种报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MySQL 数据库设计复习笔记及项目实战

    MySQL 数据库设计复习笔记及项目实战

    参考的数据库文档主要有:目前国内的常见的PHP系统的数据库
    2010-03-03

最新评论