连接到 BTP 上托管的远程 postgresql 服务器时出现问题

问题描述 投票:0回答:1

我在 SAP BTP 上有一个 postgresql 实例,它绑定到一个 Cloud Foundry 应用程序。 我想使用 pgadmin4 从本地桌面访问此实例。

我已按照此博客中提到的步骤进行操作,并从 cli 中尝试了以下youtube 视频

不过,在这两种方式中,我都遇到了相同的错误:

psql:错误:连接到“localhost”(127.0.0.1)的服务器,端口 2641 失败:致命:连接需要有效的客户端证书 连接到“localhost”(127.0.0.1)的服务器,端口 2641 失败:致命:pg_hba.conf 拒绝主机“hostname”、用户“username”、数据库“dbname”的连接,无加密

这似乎我需要提供客户端证书(BTP 服务密钥上的 ssl_cert)。我如何在 CLI 上使用 psql 给出这个?

我尝试在 pgadmin GUI 的参数部分中给出它,但得到了相同的错误。

我也尝试过使用 uri 和 psql 来连接,

psql postgres://:@:5432/ psql: 错误:连接到服务器“”,端口 5432 失败:连接超时 (0x0000274C/10060) 服务器是否在该主机上运行并接受 TCP/IP 连接?

这可能是因为与远程主机的连接必须通过 ssh 隧道完成,而不能直接完成。

我还尝试将 BTP 服务密钥中的 sslcert、sslkey 和 sslrootcert 存储在 3 个本地文件 .crt、.key 和 .crt 中,并将这些文件作为 pgAdmin 中的输入参数,但仍然不起作用。

错误:致命:连接需要有效的客户端证书

我不知道如何继续。有人可以提供帮助吗?

postgresql ssh psql cloud-foundry pgadmin
1个回答
0
投票

您必须从 BTP Cockpit 创建服务密钥。 单击“订阅”选项卡,然后单击您的 PostgreSQL 实例。 从那里,单击“服务密钥”选项卡,有一个“创建”按钮,单击此按钮。它将打开一个模式窗口,其中的服务键基本上是空的。 但如果您关心它并下载它,它将生成连接所需的所有内容,包括用户名、密码、主机名。 这一切都很神秘,但您需要足够的信息来从 PgAdmin4 设置远程访问。 问题是,从这里开始,连接超时的情况更加频繁,因此这个问题很可能是试用版 BTP Cockpit Foundry 本身造成的。 但我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.