我在托管在数字海洋水滴上的 docker 容器中运行气流和 postgres。 Airflow 成功运行并将数据写入我的 postgres 数据库。当我 ssh 进入我的数字海洋水滴时,我可以
docker exec -it <mycontainer> bash
然后我可以运行 psql 并查询我的数据库。我通过检查容器知道它已启动并正在运行,并且我已经公开了端口 5433。我知道没有任何防火墙问题,因为我只需转到液滴 ID 地址和正确的端口。
我想做的是从我的本地机器访问数据库,以便能够运行查询和进行分析。但是,我找不到连接数据库的方法。理想情况下,我会在使用 SQL 编辑器 (DBeaver) 时进行连接。
我花了 4 个小时试图让连接正常工作,我已经用尽了所有资源(ChatGPT 没有帮助!)。我能够在 DBeaver 中成功创建一个 ssh 隧道,但我仍然无法获得连接。我收到这个错误,我不明白。
The connection attempt failed.
EOFException
java.io.EOFException
我之前也收到过
Connection Refused
错误信息。当我不使用 ssh 隧道时会发生这种情况。当我检查在服务器上运行的 docker 容器时,IP 地址列为“172.20.0.2”。我在 docker-compose 文件中公开了端口 5433。我正在尝试找到正确的连接字符串(成功通过 ssh 隧道后)。
username: postgres
password: mypassword
database: postgres
port: 5433
host: ? (I haveve tried "localhost" and "172.20.0.2")
有人能拯救我的理智吗?
长话短说;博士 尝试连接到在数字海洋水滴上的 docker 容器中运行的 postgres 数据库。容器和 Postgres 正在运行(我能够连接到容器并使用 psql 运行查询)。我也知道没有任何防火墙问题,我能够连接到在同一个液滴中的容器中运行的气流仪表板。