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

Docker+PostgreSQL报错:角色‘dummy’不存在的问题求助

解决PostgreSQL Docker容器中“Role不存在”的认证失败问题

你的问题核心是Docker命名卷postgres_data中保留了旧的数据库初始化数据,导致你在compose文件中配置的POSTGRES_USER、POSTGRES_DB等环境变量没有生效——PostgreSQL容器只会在首次启动且数据目录为空时,才会根据这些环境变量创建用户和数据库。如果卷已经存在,容器会直接使用卷中已有的数据,无视新的环境变量配置。

以下是具体解决步骤:

  1. 彻底清理旧容器和关联数据卷
    运行命令停止容器并删除关联的命名卷:

    docker-compose down -v
    

    如果你需要手动操作,也可以分步执行:

    # 停止运行中的容器
    docker stop pg_test
    # 删除容器
    docker rm pg_test
    # 删除保存旧数据的命名卷
    docker volume rm postgres_data
    
  2. 重新启动容器
    执行启动命令,此时容器会重新初始化数据库,根据你compose文件中的配置创建dummy用户和test数据库:

    docker-compose up -d
    
  3. 验证连接
    使用psql客户端测试连接(如果本地没有psql,也可以用容器内的客户端):

    # 本地客户端连接
    psql -h localhost -p 5432 -U dummy -d test
    # 或进入容器内部连接
    docker exec -it pg_test psql -U dummy -d test
    

    输入密码dummy即可成功连接。

补充说明:你之前尝试的切换端口、终止端口进程操作,只能解决端口冲突类问题,但本次问题的根源是数据卷中的旧配置,因此这些操作无法解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:06:10