热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

如何解决mysql删除表时锁表问题

解决mysql删除表时锁表问题的方法:首先查询是否有正在执行的事务,如果有未提交的事务,则kill事务或等待事务提交;然后重新执行删除表操作即可。

解决mysql删除表时锁表问题的方法:首先查询是否有正在执行的事务,如果有未提交的事务,则kill事务或等待事务提交;然后重新执行删除表操作即可。

问题描述:

(推荐教程:mysql视频教程)

1、drop table 的时候导致表被锁,一直再等待。

2、SHOW FULL PROCESSLIST ; 能找到等待中的进程。

3、kill 相应的锁之后,查询不受影响。

4、再次删除这个表又出现锁表。

问题解决:

通过如下语句查询是否有正在执行的事务, 如果有未提交的事务, 可以考虑kill事务或等待事务提交。

SELECT trx_state, trx_started, trx_mysql_thread_id, trx_query FROM information_schema.innodb_trx;

查询到一个正在执行的事务,kill掉之后执行删除表操作正常。


推荐阅读
author-avatar
吴慈瑋宗杰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有