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

Windows环境docker-compose配置pgadmin密码文件出现fe_sendauth: no password supplied错误

问题原因
  • 密码文件/pgadmin4/servers_pass属主为root,pgadmin服务默认运行用户为pgadmin,无读取权限
  • 密码文件权限为755,不符合PostgreSQL密码文件要求的*所有者只读(600)*规则,权限不合规的密码文件会被客户端直接忽略,因此触发fe_sendauth: no password supplied报错
  • 此前测试的无注释简化版密码文件格式错误,pgpass标准格式为hostname:port:database:username:password,多字段的错误配置无法被正确识别
解决步骤
  1. 修改docker-compose.yml中pgadmin服务的配置,添加启动命令自动修正密码文件的属主和权限(Windows宿主机无法直接设置Linux文件权限,在容器启动时修改是最适配跨平台挂载的方案),参考配置:
services:
  pgadmin:
    # 保留原有镜像、端口、环境变量等配置不变
    volumes:
      - ../db/servers.json:/pgadmin4/servers.json
      - ../db/servers_pass:/pgadmin4/servers_pass
    command: >
      sh -c "
      chown pgadmin:pgadmin /pgadmin4/servers_pass &&
      chmod 600 /pgadmin4/servers_pass &&
      /entrypoint.sh
      "
  1. 确认servers.json中的对应服务器配置已添加PassFile字段指定密码文件路径,参考配置段:
{
  "Servers": {
    "1": {
      "Name": "PostgreSQL服务",
      "Group": "默认服务组",
      "Host": "database",
      "Port": 5432,
      "MaintenanceDB": "postgres",
      "Username": "postgres",
      "PassFile": "/pgadmin4/servers_pass",
      "SSLMode": "prefer"
    }
  }
}
  1. 修正密码文件格式,保留第一版带注释的配置即可,#开头的注释行会被自动忽略,通配符*可匹配所有数据库,符合格式要求:
#host:port:db:user:pass
database:5432:*:postgres:mypasswd

配置修改完成后重建pgadmin容器即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:03