You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用连接AWS PostgreSQL失败,IntelliJ连接报错求助

IntelliJ无法连接AWS RDS PostgreSQL,提示需指定版本且Spring Boot应用也无法连接

问题描述

开发购物应用时,从本地PostgreSQL切换到AWS RDS PostgreSQL实例,IntelliJ连接时报错:

DBMS: PostgreSQL (no ver.)
Case sensitivity: plain=mixed, delimited=exact
The connection attempt failed.

报错下方有specify version链接,点击需输入数据库版本。已确认主机端点、数据库名称及密码正确,修改application.yml数据源配置后,Spring Boot应用仍无法连接。


解决步骤

  • 手动指定PostgreSQL版本
    点击报错中的specify version链接,输入AWS RDS实例对应的PostgreSQL版本(可在AWS控制台RDS实例详情页的「配置」模块找到),比如15.3这类具体版本号,之后重新测试连接。IntelliJ自动版本探测失败是常见原因,手动指定后大概率能解决IDE连接问题。

  • 检查AWS RDS安全组配置
    这是最容易忽略的点:

    1. 进入AWS控制台的RDS实例页面,找到「连接与安全性」下的安全组;
    2. 编辑该安全组的入站规则,添加一条「PostgreSQL」类型的规则,源设置为你的本地IP地址(或Spring Boot应用部署服务器的IP);
    3. 若临时测试,可将源设为0.0.0.0/0(注意:生产环境不要这么做,存在安全风险),确认后再尝试连接。
  • 验证Spring Boot的数据源配置
    确保application.yml中的配置格式正确,示例如下:

    spring:
      datasource:
        url: jdbc:postgresql://your-rds-endpoint:5432/your-db-name
        username: your-db-username
        password: your-db-password
        driver-class-name: org.postgresql.Driver
    

    注意:如果RDS实例修改了默认端口(5432),要在URL中替换成对应端口;同时检查用户名、密码是否和RDS创建时设置的一致,默认用户名通常是postgres。

  • 测试网络连通性
    用telnet命令测试本地与RDS端点的5432端口是否连通:

    telnet your-rds-endpoint 5432
    

    如果连接失败,说明本地防火墙或网络环境拦截了5432端口,需要调整本地防火墙规则,或者确认网络是否能访问AWS RDS的公网端点(如果是私网实例,需要确保应用在同一个VPC内)。

  • 确认RDS实例状态
    检查AWS控制台中RDS实例的状态是否为「可用」,如果处于「创建中」「维护中」或「备份中」,则无法正常连接,需等待状态变为可用后再尝试。


内容的提问来源于stack exchange,提问作者zenithcodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:32:45