Spring Boot应用无法连接PostgreSQL数据库求助
问题分析与解决方案
核心错误是 Caused by: java.net.UnknownHostException: postgres,说明应用尝试连接名为postgres的主机,但你提供的application-dev.properties配置中数据源URL使用的是localhost,这意味着实际生效的配置并非你当前的dev配置,或者存在配置覆盖的情况。
以下是具体排查和解决步骤:
确认激活dev环境配置
Spring Boot不会自动加载application-dev.properties,必须显式指定激活dev环境:- 启动应用时添加命令行参数:
--spring.profiles.active=dev - 或设置环境变量:
SPRING_PROFILES_ACTIVE=dev
如果未激活,应用会默认使用application.properties(若存在),而该文件中可能配置了postgres作为数据库主机。
- 启动应用时添加命令行参数:
检查配置优先级与生效值
Spring Boot配置存在优先级(命令行参数 > 环境变量 > application.properties > application-dev.properties),可能有其他配置覆盖了你的dev配置。
启动应用时添加--debug参数,查看控制台输出的Conditions Evaluation Report,找到spring.datasource.url的实际生效值,确认是否为你配置的localhost地址。验证本地PostgreSQL服务可用性
先用命令行测试本地数据库连接,确认服务正常:psql -h localhost -p 5432 -U postgres sofra_hybrid_7输入密码
admin后若能成功进入数据库,说明服务本身无问题。确认驱动依赖兼容性
检查项目依赖中的PostgreSQL驱动版本与服务器版本匹配,Maven依赖示例:<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency>避免驱动版本与服务器版本差异过大导致连接异常。
内容的提问来源于stack exchange,提问作者Meta Stack
相关产品推荐
相关产品推荐

