首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flyway 4.1、4.2与Percona的PXC严格模式不兼容

Flyway 4.1、4.2与Percona的PXC严格模式不兼容
EN

Stack Overflow用户
提问于 2017-07-26 23:59:25
回答 1查看 445关注 0票数 0

在升级到Flyway 4.2.1之后,我们在发布到Percona MySQL集群时开始出现错误。我们得到的错误是:

代码语言:javascript
复制
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.dbsupport.FlywaySqlException: 
Unable to acquire MySQL named lock: Flyway-605484229
----------------------------------------------------
SQL State  : HY000
Error Code : 1105
Message    : Percona-XtraDB-Cluster prohibits use of GET_LOCK with pxc_strict_mode = ENFORCING

看起来Flyway 4.1+试图锁定表,而Percona的PXC严格模式不允许这样做。

我想我的问题是:我们能不能在Flyway PXC端做些什么来避免这个错误( Flyway 4.0之前一切正常),或者我们唯一的选择就是在4.1+中禁用PXC严格模式?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 02:17:40

PXC中的显式锁不会分发到整个群集。这可能会导致未知/不受欢迎的后果。因此,在更现代的PXC版本中,pxc_strict_mode被引入以帮助防止意外副作用的发生。

如果您的应用程序仅将写入隔离到1个节点,则可以将设置更改为MASTER,这将保留除表锁检查之外的大多数强制行为。

它也是一个会话级变量,因此仅针对此操作更改它不会影响其他会话。

另一方面,如果它在4.0中工作,在4.1中不工作,并且DB端没有任何变化,那么这是一个需要向Flyway开发人员提出的问题。这显然是他们添加的一个特性/功能,它应该有一个禁用的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45332033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档