【问题标题】:Remote access to an Azure Postgres database远程访问 Azure Postgres 数据库
【发布时间】:2023-03-24 10:34:01
【问题描述】:

如何从远程计算机连接到 Azure PostgreSQL 数据库?

更新 2。 我可以使用 sudo psql 从 WSL/Ubuntu 连接到数据库,但我不能使用普通的 psql。所以这是某个地方的权限问题......

更新。我发现我可以使用 PgAdmin4 从远程计算机进行连接,但我无法使用 psql 进行连接。所以我想知道:我应该如何使用 psql 连接?

原始问题。我可以从 Azure 中的 VM 使用 psql 连接到它,因此我知道数据库已启动并正在接受连接。 但是当我尝试从我的家用机器连接时,使用完全相同的psql 命令,它失败了:

psql --user=UUU --host=HHH DB

psql: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

更多信息... 在 Azure 数据库的“连接安全”刀片上,我有

  • 添加了一条防火墙规则,起始 IP=0.0.0.0,结束 IP=255.255.255.255
  • 将“强制 SSL 连接”设置为禁用
  • 打开了“允许访问 Azure 服务”。

我的家用机器正在运行 Windows+WSL,我正在尝试从 WSL / Ubuntu 18.04 进行连接 使用 psql 版本 10.11。无论我尝试从家里还是从工作中连接,我都会遇到同样的问题,而且我没有阻止任何传出端口(我知道)。 数据库正在运行 PostgreSQL 10。 当我使用psql 10.10 从 Azure VM 连接(成功)时,它看起来像这样:

psql --user=UUU --host=HHH DB
Password for user UUU:

psql (10.10 (Ubuntu 10.10-0ubuntu0.18.04.1))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

【问题讨论】:

  • 能否请您转到“Azure Database for PostgreSQL 服务器 - 服务器日志”刀片并检查尝试从 WSL 主机连接时发生了什么?
  • 当我尝试从我的 WSL 主机连接时,服务器日志中根本没有添加任何内容。当我从 Azure VM 连接时,日志中出现正常的“已收到连接,已授权连接”行。
  • 你有没有试过不使用 psql 而是使用 PgAdmin4 之类的东西?如果没有,请您尝试一下并分享详细信息吗?
  • 我刚刚安装了 PgAdmin4(有史以来第一次)并且它工作了——我可以从我的本地计算机连接!所以这一定与我使用 psql 的方式有关......
  • 我刚刚尝试使用 PgAdmin4 附带的 psql 从本地计算机进行连接。效果很好。

标签: azure azure-virtual-network azure-database-postgresql


【解决方案1】:

也许您的 root 用户使用的 psql 二进制文件与您的用户不同。 (您可以使用 which psqlsudo which psql)

我遇到了同样的连接问题。就我而言,基本问题是 postgres 主要版本不匹配。

我使用版本 12 上的本地 psql 连接到版本 11 上的 Azure Postgresql。将我本地计算机的 Postgres 版本降级到 11.6 为我解决了这个问题。

也许您的 root 用户正在使用 psql 10,而您的默认用户正在使用 psql 11 或 12。(您可以使用 psql -Vsudo psql -V 进行检查)

【讨论】:

  • 这很有帮助——但我选择了核选项,重新安装了 Ubuntu,所以我无法测试它。
  • 这是正确答案。 Postgre抛出的错误绝对没用。
【解决方案2】:

我有同样的问题。错误消息很糟糕,没有帮助。

您使用的 psql 版本可能与您的 Azure DB 不同。它需要与 Azure 中安装的任何内容相匹配。

因此,如果您在 Azure 中预配了版本 10 的数据库,您可以为 pqsl 工具安装版本 10,或者执行完整的 Postgre 版本 10 安装。重点是psql和目标数据库的主版本需要匹配。

【讨论】:

    猜你喜欢
    • 2021-01-08
    • 2018-04-02
    • 2018-02-14
    • 2015-05-29
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多