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

SpringBoot应用部署到远程服务器连接远端PostgreSQL数据库报错求解决方案

PostgreSQL连接失败问题排查解决步骤
  • 第一步:先验证服务器网络连通性
    登录部署SpringBoot应用的远程服务器,执行以下命令测试到数据库的网络是否可达:

    # 替换为你实际的数据库IP和端口
    telnet 1xx.1xx.xx.xx6 端口号
    # 或者用nc命令
    nc -zv 1xx.1xx.xx.xx6 端口号
    

    如果命令执行失败,说明是网络层面问题:检查数据库侧安全组/防火墙是否开放对应端口给应用服务器IP,确认数据库IP和端口填写正确。

  • 第二步:修正配置文件格式错误
    你当前配置中spring.datasource.url行末尾跟了# server address注释,SpringBoot读取properties配置时可能会将注释内容也识别为URL的一部分,导致地址无效。将注释移到单独一行即可:

    # server address
    spring.datasource.url=jdbc:postgresql://1xx.1xx.xx.xx6:xxxx/dbname
    
  • 第三步:检查PostgreSQL服务端访问配置
    登录PostgreSQL所在服务器,检查两个配置文件:

    1. postgresql.conf中listen_addresses参数,确认配置为*或者包含应用服务器的IP,不能仅配置为127.0.0.1
    2. pg_hba.conf中添加应用服务器IP的访问规则,示例如下:
    # 替换为实际应用服务器IP,加密方式根据数据库配置调整为md5或scram-sha-256
    host  all  all  111.111.11.111/32  scram-sha-256
    

    修改配置后需要重启PostgreSQL服务生效。

  • 第四步:验证驱动与数据库版本兼容性
    你当前使用的postgresql驱动版本为42.2.22,如果你的PostgreSQL数据库版本为15及以上,低版本驱动对新的密码加密方式兼容存在问题,可将驱动版本升级到42.5.4以上后重新打包测试。

  • 第五步:定位具体根因
    启动应用时添加调试参数打印PostgreSQL连接的详细日志,查看根异常信息:

    java -jar test-0.0.1-SNAPSHOT.jar --logging.level.org.postgresql=DEBUG
    

    若日志显示密码认证失败,核对配置的用户名密码是否正确;若显示连接超时,回到第一步排查网络策略。
    也可以启动时直接强制传入数据库配置,排除配置加载优先级问题:

    java -jar test-0.0.1-SNAPSHOT.jar \
    --spring.datasource.url=jdbc:postgresql://1xx.1xx.xx.xx6:xxxx/dbname \
    --spring.datasource.username=实际用户名 \
    --spring.datasource.password=实际密码
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:45:04