【问题标题】:why can't i connect to postgres on AWS EC2?为什么我无法连接到 AWS EC2 上的 postgres?
【发布时间】:2018-04-05 23:14:51
【问题描述】:

我希望以前经历过这种情况的人可以帮助我建立与 AWS/EC2 的连接 -> Postgres 正常工作。

以下所有内容都是通过终端,在 Mac 客户端上。

有问题的数据库 - Postgres - 在我的本地 Mac 上的这个 EC2 服务器上远程运行,不是(我的本地 Mac 上也没有安装 Postgres)

我的理解是,我需要能够实际连接到 EC2 服务器并建立 SSL“隧道”连接——从我的 PC 到同一台 EC2 服务器——这样我才能访问 Postgres 数据库

如果我的理解有误,请告诉我。

所以,我打开了 2 个终端窗口。航站楼 A 和航站楼 B。

在 A 航站楼

(a) 连接到 EC2 服务器工作正常。这是 CLI 命令:

ssh -L 3307:127.0.0.1:3306 -i my.pem ubuntu@xx.yy.zzz.99

终端 A 中的 CLI 然后向我显示 Ubuntu/服务器提示符 Last login: Wed Oct 25 12:27:31 2017 from aaa222-444.xxxx.rrr.ff.net ubuntu@ip-111-222-333-44:~$

然后,我去B航站楼……

在 B 航站楼

(b) 我尝试使用以下命令从本地 连接到 Postgres:

psql -h localhost -p 3307 -U postgres_uid postgres_databasename

每次都失败。

我在 B 航站楼收到此回复:

psql: received invalid response to SSL negotiation: [

我想知道,建立这个 DATABASE 连接是否需要不同的 SSL 设置?还是应该是一旦我登录到 AWS EC2 服务器(如上所述)我应该能够运行 psql 命令(或使用像 Navicat 等 GUI 客户端)?

我很茫然,这里没有人知道如何解决/设置它。这可能很简单,但没关系,我只需要连接:-)

感谢任何人对此的帮助。

【问题讨论】:

  • 你配置那个端口来连接psql?因为默认端口是 5432 试试看。
  • 我刚试过:psql -h localhost -p 5432 -U postgres_uid postgres_databasename。返回的错误是could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?

标签: postgresql amazon-web-services amazon-ec2


【解决方案1】:

在 -d 选项中使用 URI 语法,SSL 应自行处理。

我使用以下命令访问云 postgres 实例(在 bluemix,而不是 ec2 上),试一试...:

psql -d postgres://<user>:<password>@<host>:<port>/<dbname>

【讨论】:

  • 感谢您的建议。我刚试过,同样的错误返回了
猜你喜欢
  • 2021-01-18
  • 2020-04-19
  • 2021-10-14
  • 2021-09-18
  • 2015-10-19
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
相关资源
最近更新 更多