为什么我无法连接到AWS EC2上的postgres?

时间:2017-10-25 01:51:06

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

我希望以前有过这方面经验的人可以帮助我获得与AWS / EC2的连接 - > Postgres工作。

以下所有内容均来自Mac客户端上的终端。

有问题的数据库 - Postgres - 在我的本地Mac上在此EC2服务器 not 上远程运行(我的本地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客户端)?

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

感谢任何人的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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