如何从远程计算机连接到Azure PostgreSQL数据库?
更新2。我可以使用sudo psql
从WSL / Ubuntu连接到数据库,但是不能使用普通psql
。所以这是某处的权限问题...
更新。我发现可以使用PgAdmin4从远程计算机进行连接,但是无法使用psql进行连接。所以我想知道:我应该如何使用psql进行连接?
原始问题。我可以使用psql
从Azure内部的VM连接到它,因此我知道数据库已启动并接受连接。
但是,当我尝试使用完全相同的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数据库的“连接安全”刀片上,我有
我的家用计算机正在运行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)
答案 0 :(得分:2)
也许您的root用户使用与您的用户不同的psql二进制文件。 (您可以使用
which psql
和sudo which psql
)
我遇到了相同的连接问题。就我而言,基本问题是postgres主版本不匹配。
我正在使用版本12上的本地psql连接到版本11上的Azure Postgresql。将本地计算机的Postgres版本降级为11.6可以解决此问题。
也许您的root用户使用的是psql 10,而默认用户使用的是psql 11或12。(您可以使用psql -V
和sudo psql -V
进行检查)
答案 1 :(得分:1)
我有同样的问题。错误消息很糟,并且有0个帮助。
您可能正在使用与Azure数据库不同的psql版本。它需要匹配Azure中安装的任何内容。
因此,如果您在Azure中配置了版本10的数据库,则可以为pqsl工具安装版本10,或者安装完整的Postgre版本10。关键是psql和目标数据库之间需要匹配的主要版本。