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

DBeaver连接本地Docker Postgres 5434端口报EOFException问题咨询

故障修复方案

你描述的「仅默认5432端口可正常连通,其余映射端口连接全部返回EOFException」的现象,核心诱因基本集中在以下几类,按概率从高到低排查即可:

1. 端口映射配置错误(90%概率)

Docker端口映射的格式是-p 宿主机端口:容器端口,Postgres官方镜像内部服务固定监听5432端口,不会随你指定的宿主机映射端口变化。

  • 先执行docker ps查看对应容器的PORTS列输出,如果你映射5434端口时看到的是0.0.0.0:5434->5434/tcp,就是手滑把容器侧端口也写成了5434,此时容器内5434端口没有任何服务监听,连接会直接被重置返回EOF。
  • 只有当映射关系为0.0.0.0:5434->5432/tcp, :::5434->5432/tcp才是正确配置,对应启动命令参考:
# 停止并删除旧的错误容器
docker stop 你的容器ID/名称
docker rm 你的容器ID/名称
# 用正确的映射规则启动新容器
docker run -d \
  --name pg-test \
  -e POSTGRES_PASSWORD=你设置的数据库密码 \
  -p 5434:5432 \
  postgres:你用的版本号

这也正好能解释为什么只有5432端口能连通:当你测试5432端口时,映射规则刚好是5432:5432,误打误撞匹配了容器内部的监听端口。

2. 宿主机监听地址不匹配

如果端口映射配置正确,先执行端口监听检查:

  • Linux/macOS执行:ss -tlnp | grep 5434
  • Windows执行:netstat -ano | findstr 5434
    如果输出显示5434端口只绑定了IPv6地址::1,而DBeaver里连接填的主机是localhost默认走IPv4,就会出现连接异常,两种修复方式二选一:
  • 直接把DBeaver连接配置里的主机地址从localhost改成明确的127.0.0.1
  • 启动容器时明确指定绑定IPv4回环地址:-p 127.0.0.1:5434:5432

3. 客户端配置缓存问题

先跳过DBeaver,用原生psql命令行直接测试连通性,排除客户端本身的配置缓存问题:

psql -h 127.0.0.1 -p 5434 -U postgres
  • 如果命令行可以正常连接,说明是DBeaver旧连接的配置缓存导致的,直接删掉之前建的连接条目,重新新建连接配置即可,不要在原有5432端口的连接配置上直接改端口复用。

4. 本地安全规则拦截

  • 部分桌面端安全软件、系统防火墙会对非默认端口的本地回环连接做拦截,如果以上配置都确认正确,临时关闭防火墙/安全软件测试,连通后给对应端口加本地白名单即可。

注意:不需要修改容器内部Postgres的配置文件来改内部监听端口,端口映射本身就是为了实现宿主机端口到容器固定服务端口的转发,强行修改容器内部端口反而会引入额外的配置故障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:33:44