Docker中PostgreSQL拒绝Docker宿主机登录问题求助
PostgreSQL容器外部连接密码认证错误的排查方案
本地端口冲突
检查本地是否已运行PostgreSQL服务占用了5432端口。如果本地有postgres服务在运行,容器的5432:5432端口映射实际未生效,你用IntelliJ连接的是本地postgres而非容器内的实例,自然会出现密码不匹配。
解决办法:- 停止本地PostgreSQL服务,重启容器后重试连接;
- 修改容器端口映射为
5433:5432,IntelliJ连接时使用5433端口。
Docker卷缓存旧数据
你配置了本地卷db_data,如果之前启动过该容器(或其他postgres容器复用了这个卷),卷内已存在初始化好的数据库数据,此时POSTGRES_PASSWORD等环境变量不会再生效——这些变量仅在**第一次初始化数据库(卷为空状态)**时才会设置密码和用户。
解决办法:
删除旧卷后重新启动容器(注意:此操作会丢失卷内所有数据,确认无需保留再执行):docker-compose down docker volume rm <你的项目目录名>_db_data docker-compose up -d连接参数细节错误
再核对下IntelliJ的连接配置:- 数据库名是否为
combiner,而非默认的postgres; - 主机地址是否填了
localhost或127.0.0.1; - 用户名是否为小写的
postgres,PostgreSQL默认对用户名大小写敏感。
- 数据库名是否为
内容的提问来源于stack exchange,提问作者ola
相关产品推荐
相关产品推荐

