【问题标题】:Error no pg_hba.conf entry for host when using PG client, but not when connecting with psql?使用 PG 客户端时,主机没有 pg_hba.conf 条目出错,但与 psql 连接时却没有?
【发布时间】:2020-03-14 16:39:41
【问题描述】:

我将我的应用程序从一个 PG 集群指向另一个(更改管理 PG 集群的团队),并且在尝试连接 language binding for javascript 时遇到连接错误:

no pg_hba.conf entry for host xxx.x.x.x, user "blah", database "blah", SSL off

我被引导相信这是一个 pg_hba.conf 配置错误,但我可以使用相同的凭据从同一台机器上使用 psql 连接到集群。

  • psql:9.5.7,
  • PG 集群 10.5
  • 客户端:pg-promise 9.3.3

这怎么可能?这仍然是如何设置 pg_hba.conf 的问题,还是我配置客户端的方式有问题?这不是我第一次使用它,过去几年我一直在连接到 PG 集群 v. 9.5.7。

【问题讨论】:

  • 您能否解释一下您是如何将数据从一个集群传输到另一个集群的,以及什么是“语言绑定”?您是否查看了 PostgreSQL 服务器的日志文件以获取有关失败的连接尝试的更多信息?
  • 您的应用程序是否偶然在具有不同 IP 地址的 docker 容器中运行?
  • 它在一个docker容器中,但我可以从容器中执行psql并成功连接。我怀疑 SSL 部分,这是新集群中的差异之一。 psql 客户端会自动接受提供的证书吗?
  • 好的,我刚刚发现它实际上是新集群上的 SSL。我将语言绑定配置为使用 SSL,现在可以连接了。

标签: postgresql psql pg-promise


【解决方案1】:

问题在于新集群使用 SSL 进行连接。当我连接到旧集群时,没有 SSL,所以连接与我当前的配置一起工作,但是当切换到新集群时,我必须指定正在使用 SSL。

https://github.com/vitaly-t/pg-promise/wiki/Connection-Syntax

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 2013-08-06
    • 2010-11-27
    • 2014-09-19
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    相关资源
    最近更新 更多