Azure K8s中使用MongoDB的微服务报错找不到Postgres驱动问题咨询
问题根因
报错由Spring Boot的JDBC数据源自动配置逻辑触发,核心原因如下:
- Type-2服务的Helm配置错误将MongoDB连接串填写到了
spring_datasource_url参数中:该参数是Spring Boot初始化JDBC关系型数据库数据源的专属配置key,只要检测到该配置存在,Spring Boot就会自动启动JDBC数据源初始化流程,和你实际使用MongoDB无关。 - Type-2服务的代码依赖中没有引入PostgreSQL驱动包,Spring Boot初始化JDBC数据源时无法找到对应驱动类,因此抛出你看到的报错。
本地运行无问题是因为本地配置中没有这个多余的spring_datasource_url配置,不会触发JDBC自动配置逻辑。
修复步骤
- 首先删除Type-2服务下
global.envVariable.common中的spring_datasource_url配置项,MongoDB的连接串需要配置到专用参数spring_data_mongodb_uri中,参数值保持你原来的Mongo连接串即可 - 如果你的Type-2服务完全不需要使用任何关系型数据库,直接在Type-2的环境变量中新增配置:
spring_autoconfigure_exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,从根源上禁用JDBC数据源自动配置逻辑 - 进入运行中的Type-2服务Pod,打印所有环境变量,确认是否继承了Type-1配置中全局的
spring_datasource_username、spring_datasource_password参数,如果存在也需要一并清理,避免触发自动配置 - 重新发布服务验证即可
内容的提问来源于stack exchange,提问作者Dhaval Simaria
相关产品推荐
相关产品推荐

