使用外部MySQL部署Bitnami Spring Cloud DataFlow Kubernetes启动报错
问题:Spring Cloud DataFlow 2.10.3 + Bitnami Chart 20.0.0 外部MySQL启动失败
通过ArtifactHub的Bitnami Chart部署Spring Cloud DataFlow,采用外部MySQL数据库。应用版本2.9.1搭配对应Chart版本时可正常运行,但升级至应用版本2.10.3、Chart版本20.0.0后,Pod启动阶段出现JDBC驱动及Flyway错误。
报错信息
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is java.lang.RuntimeException: Driver org.mariadb.jdbc.Driver claims to not accept jdbcUrl, jdbc:mysql://host:3306/skipper at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.27.jar!/:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.27.jar!/:5.3.27] ... 29 common frames omitted Caused by: java.lang.RuntimeException: Driver org.mariadb.jdbc.Driver claims to not accept jdbcUrl, jdbc:mysql://host:3306/skipper at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:110) ~[HikariCP-4.0.3.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:331) ~[HikariCP-4.0.3.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:114) ~[HikariCP-4.0.3.jar!/:na]
解决方案
- 核心原因:2.10.3版本的镜像默认引入了MariaDB驱动,但你的JDBC URL使用的是MySQL格式(
jdbc:mysql://),新版本MariaDB驱动对MySQL URL的兼容性调整,导致HikariCP初始化失败。 - 方案1:调整JDBC URL格式
将jdbc:mysql://host:3306/skipper替换为jdbc:mariadb://host:3306/skipper,其余参数保持不变。 - 方案2:强制指定MySQL驱动
在Chart的配置文件中添加以下参数,覆盖默认的驱动配置:dataflow: database: driverClassName: com.mysql.cj.jdbc.Driver skipper: database: driverClassName: com.mysql.cj.jdbc.Driver - 验证:修改配置后重新部署,查看Pod启动日志,确认Flyway初始化完成且数据库连接正常。
内容的提问来源于stack exchange,提问作者Anish Raut
相关产品推荐
相关产品推荐

