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

通过Airflow访问本地Postgres容器出现连接拒绝报错如何解决

Airflow连接Postgres报错Connection refused解决方案

核心错误原因

你的Postgres容器端口映射到了宿主机的5003端口,而Airflow进程尝试访问自身网络上下文的localhost:5003,两者不属于同一个网络环境,导致连接被拒绝。

分场景解决方案

场景1:Airflow运行在Docker容器中(90%以上概率)

方案1:同网络访问(最稳定)

  • 将Airflow服务和Postgres容器加入同一个Docker网络:
    # 查看现有Docker网络
    docker network ls
    # 假设Airflow默认网络为airflow_default,将Postgres容器加入该网络
    docker network connect airflow_default <你的Postgres容器名/容器ID>
    
  • 修改Airflow的Postgres连接配置:
    • Host填Postgres容器名
    • Port填Postgres容器内部端口5432,无需使用宿主机映射的5003
    • Schema填你要连接的Postgres数据库名,默认可以填postgres

方案2:通过宿主机IP访问

  • 如果你不想调整Docker网络,将Airflow连接配置的Host修改为宿主机的局域网IP(不要填localhost/127.0.0.1),端口保持5003即可。
  • Windows/macOS环境下的Docker可以直接用特殊域名host.docker.internal代替宿主机IP。

场景2:Airflow直接部署在宿主机(非Docker)

  • 先验证本地端口连通性:
    # 执行以下命令,确认5003端口可访问
    nc -zv localhost 5003
    
  • 检查Postgres容器的pg_hba.conf配置,确认允许宿主机IP的连接请求。
  • 检查Airflow连接配置的Schema字段,填写正确的Postgres数据库名,不要留空,默认值为postgres。

额外校验点

确认Airflow连接配置的用户名、密码和你启动Postgres容器时设置的POSTGRES_USER、POSTGRES_PASSWORD参数完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:36:04