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

Spring Boot项目连接PostgreSQL出现密码认证失败错误求助

解决PostgreSQL密码认证失败问题

你的问题并非需要添加代码,而是配置存在两处关键问题,修正后即可正常连接:

1. 修复Docker容器端口映射

当前compose.yaml中仅声明了容器内部的5432端口,未映射到主机端口,导致Spring应用无法通过localhost:5432访问容器内的数据库。修改ports配置:

services:
  postgres:
    image: 'postgres:latest'
    environment:
      - 'POSTGRES_DB=wow'
      - 'POSTGRES_PASSWORD={password}'
      - 'POSTGRES_USER=postgres'
    ports:
      - '5432:5432'  # 主机端口与容器端口绑定,确保主机能访问容器数据库

注意:POSTGRES_ROOT_PASSWORD是MySQL的环境变量,PostgreSQL不识别,直接删除即可。

2. 强制PostgreSQL使用密码认证

PostgreSQL默认对本地连接采用peer认证(依赖操作系统用户匹配),而非密码校验。添加环境变量强制使用密码认证:

services:
  postgres:
    # ... 其他配置
    environment:
      # ... 已有变量
      - 'POSTGRES_HOST_AUTH_METHOD=md5'

3. 验证连接

重启Docker容器和Spring应用后,无需新增任何代码即可建立数据库连接。若仍有问题,可通过以下方式排查:

  • 用pgAdmin或psql客户端尝试连接localhost:5432,确认密码、用户名和数据库名无误
  • 查看Spring应用DEBUG日志,确认是否存在其他连接异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:03:11