无法连接Docker容器化PostgreSQL数据库:密码验证失败求助
问题排查与解决
核心原因
你挂载的本地数据卷./data/postgisdb大概率已经存在旧的PostgreSQL数据文件。PostgreSQL容器仅在首次初始化数据库时会读取POSTGRES_USER、POSTGRES_PASSWORD等环境变量来创建用户和数据库,后续启动会直接复用已有数据,完全忽略这些环境变量配置。
解决步骤
- 停止并移除容器
执行命令:docker-compose down - 清理本地数据卷
若不需要保留旧数据,直接删除数据目录:
如需备份旧数据,先复制目录:rm -rf ./data/postgisdbcp -r ./data/postgisdb ./data/postgisdb_backup - 重新初始化容器
再次执行启动命令,此时容器会重新创建数据库,读取环境变量生成指定的用户和密码:docker-compose up -d --build --remove-orphans
验证方法
容器启动后,可直接进入容器用psql验证:
docker exec -it app_db_1 psql -U user -d db_test
输入密码p@ssword能正常登录的话,pgadmin的连接问题就解决了。
内容的提问来源于stack exchange,提问作者Omkommersind
相关产品推荐
相关产品推荐

