MySQL 8.0 客户端工具表设计导致表级锁锁表

在MySQL 8.0环境中,使用客户端工具进行表设计时,可能会无意间设置SHARED_HIGH_PRIO锁,导致表被锁死。当尝试修改表结构时,锁会升级,阻止所有DML和DDL操作。解决办法是通过OWNER_THREAD_ID找到并杀死持有锁的进程。生产环境中应对表结构修改进行权限控制,以防止类似问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试环境

确认测试当前表没有任何表级锁、查询performance_schema下metadata_locks得到结果。

用Mysql客户端工具,选择表设计打开

从中发现该表家了一个SHARED_HIGH_PRIO 锁,关闭该表设计窗口后,该锁不消失,除关闭连接。

新开个连接,在此对该表打开表设计,发现在添加一个SHARED_HIGH_PRIO 锁

这时修改该表的DDL结构,发现客户端工具会卡死。从metadata_locks表中发现,该表SHARED_HIGH_PRIO升级为SHARED_UPGRADABLE 并且加了一个EXCLUSIVE的X锁。

此时该表的一切DML、DDL都无法进行操作,直接导致该表锁死。如果是生产

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值