You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flyway执行含创建触发器的数据库迁移时停滞问题排查

根本原因分析

核心原因是MySQL 8.0的元数据锁(MDL)机制变化与Flyway 6.2.3版本的兼容性问题,具体细节如下:

  • MySQL 8.0对元数据锁的持有逻辑做了调整:创建触发器时,会对关联的基表(此处为billing表)持有更持久、更严格的MDL锁;而MySQL 5.7的MDL锁机制相对宽松,相同场景下不会触发阻塞。
  • Flyway 6.2.3未适配MySQL 8.0的MDL锁变化:该版本的Flyway在执行迁移脚本时,事务处理和连接管理逻辑与MySQL 8.0的锁机制冲突,导致创建触发器后MDL锁无法正常释放,主线程卡在连接锁获取环节,迁移流程停滞。
  • 移除触发器后恢复正常的原因:不再触发MySQL 8.0特有的MDL锁持有逻辑,Flyway的常规表创建操作不会触发锁阻塞,因此迁移可顺利完成。

补充说明:Flyway 6.x属于较旧版本,后续7.x及以上版本已修复了与MySQL 8.0的兼容性问题,包括元数据锁相关的处理逻辑。

内容的提问来源于stack exchange,提问作者jodoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:39:54