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

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

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

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

这时修改该表的DDL结构,发现客户端工具会卡死。从metadata_locks表中发现,该表SHARED_HIGH_PRIO升级为SHARED_UPGRADABLE 并且加了一个EXCLUSIVE的X锁。
此时该表的一切DML、DDL都无法进行操作,直接导致该表锁死。如果是生产上这样操作,那一首凉凉送给你。

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

5599

被折叠的 条评论
为什么被折叠?



