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

Spring Boot无法连接Amazon EC2上的PostgreSQL数据库求助

解决EC2上PostgreSQL远程JDBC连接拒绝问题

核心问题定位

你遇到的「Failed to obtain JDBC Connection」本质是PostgreSQL仅监听本地回环地址(127.0.0.1),拒绝所有远程连接请求。以下是分步修复方案:

1. 修改PostgreSQL监听地址配置

  • PostgreSQL 15在Amazon Linux 2023下的配置文件目录为/var/lib/pgsql/15/data/
  • 编辑postgresql.conf文件,找到listen_addresses参数,修改为:
    listen_addresses = '*'  # 允许监听所有可用IP,也可指定EC2的公网/私有IP
    
    注意移除参数前的注释符号#

2. 配置远程访问控制规则

  • 同目录下编辑pg_hba.conf文件,添加允许远程连接的规则:
    • 生产环境推荐仅允许特定IP访问:
      host    dbname     postgres     你的客户端IP/32     scram-sha-256
      
    • 测试场景可临时允许所有IP访问:
      host    all        all          0.0.0.0/0        scram-sha-256
      

    注:PostgreSQL 15默认使用scram-sha-256认证方式,若你的数据库用户使用md5认证,需替换对应字段

3. 重启PostgreSQL服务

执行命令重启服务使配置生效:

sudo systemctl restart postgresql-15

4. 验证监听状态

再次执行命令检查端口监听情况:

netstat -tulpn | grep 5432

此时应输出类似0.0.0.0:5432的监听记录,且带有PostgreSQL进程的PID。

额外验证项

  • EC2安全组:确认入站规则中5432端口的源地址包含你的客户端IP或允许的范围
  • EC2本地防火墙:若firewalld启用,需开放端口:
    sudo firewall-cmd --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    

完成以上步骤后,重新测试JDBC连接即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:42:05