如何使用flyway连接tidb

根据flyway issue #3343,flyway支持tidb,请问如何实现?
https://github.com/flyway/flyway/issues/3343

目前产品使用flyway和mysql8.0,但是切换到tidb的时候,flyway提示是mysql5.7,请问tidb是如何兼容mysql8.0的?或者,如何让flyway兼容/支持tidb?(还是只有低版本flyway才支持tidb?)

【 TiDB 使用环境】测试/ Poc
【 TiDB 版本】tidb-community-server-v7.3.0-linux-amd64

【复现路径】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flywayInitializer’ defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Flyway Teams Edition or MySQL upgrade required: MySQL 5.7 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

现在tidb只兼容mysql5.7,兼容8.0的版本还没出,flyway官方说明是支持tidb的

flyway版本 与 MySQL 版本 对应关系

  • Flyway 6.x.x:支持MySQL 5.5及以上版本
  • Flyway 7.x.x:支持MySQL 5.6及以上版本
  • Flyway 8.x.x:支持MySQL 5.7及以上版本
  • Flyway 8.2.x:支持MySQL 8.0及以上版本

你可能需要到 flyway 社区去咨询一下~

flyway官网关于tidb支持的链接。
TiDB (Titanium DB) - Flyway - Product Documentation (red-gate.com)

可以尝试改一下 server version

如果你只想修改version函数的返回值,把这个问题混过去。也不是完全没有办法。

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#server-version

改这个参数就行,你让他是mysql9.0都可以。

注意

`server-version` 的值会被 TiDB 节点用于验证当前 TiDB 的版本。因此在进行 TiDB 集群升级前,请将 `server-version` 的值设置为空或者当前 TiDB 真实的版本值,避免出现非预期行为。

但并不是没有代价的。要注意上述提示。

所以最好的解决方案还是去flyway社区去找。

参考文档

tidb端口是4000,别搞错了

只兼容mysql哦

嗯,谢谢,端口没错

嗯,我试试,谢谢提供!不够我觉得sql执行可能会有问题。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。