我在 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 中的输入参数,但仍然不起作用。
错误:致命:连接需要有效的客户端证书
我不知道如何继续。有人可以提供帮助吗?
您必须从 BTP Cockpit 创建服务密钥。 单击“订阅”选项卡,然后单击您的 PostgreSQL 实例。 从那里,单击“服务密钥”选项卡,有一个“创建”按钮,单击此按钮。它将打开一个模式窗口,其中的服务键基本上是空的。 但如果您关心它并下载它,它将生成连接所需的所有内容,包括用户名、密码、主机名。 这一切都很神秘,但您需要足够的信息来从 PgAdmin4 设置远程访问。 问题是,从这里开始,连接超时的情况更加频繁,因此这个问题很可能是试用版 BTP Cockpit Foundry 本身造成的。 但我希望这会有所帮助。