亚马逊linux上的PostgreSQL

时间:2013-10-04 09:26:47

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

我有一个亚马逊服务器实例(Amazon Linux AMI版本2010.11.2(测试版) )正在运行我的postgreSQL服务器8.4。我想用本地运行的pgAdmin访问它,我无法连接它。
我有很多问题需要帮助:
1。在服务器postgresql正在运行,psql能够与它连接但我无法远程访问它。(我想端口5432不对外界开放如何打开它,前提是我无法访问亚马逊aws控制台访问SSH,我已将pg_hba.conf修改为信任模式,将postgresql.conf修改为listen_addresses = '*'。) 2.在我的服务器上有两个角色:postgresXYZ,我无法使用XYZ登录 \du输出是:

 Role name |  Attributes  | Member of
-----------+--------------+-----------
 XYZ       | Cannot login | {}
 postgres  | Superuser    | {}
           : Create role
           : Create DB

我的pg_hba.conf是:

local   all         all                            trust

3。我可以在该Linux服务器上重新安装最新的9.2或9.3 postgreSQL服务器吗?

3 个答案:

答案 0 :(得分:1)

你想要的是一个ssh隧道。如果您的客户端计算机是Windows,请检查putty。否则,您可以执行以下操作:

ssh -L 6432:127.0.0.1:5432 myuser@amazon-host.whatever

然后在你的电脑上,只需将pg_admin连接到localhost:6432即可离开。

6432是隧道末端的本地端口。 127.0.0.1:5432是从远程计算机连接的地址。

就升级而言,您需要检查AMI版本提供的软件包或自行编译(或者升级AMI版本)。

答案 1 :(得分:1)

首先,问题2 提示:要连接到特定数据库,用户不仅必须传递pg_hba.conf检查,还必须具有数据库的CONNECT权限。如果您希望限制哪些用户可以连接到哪些数据库,通常通过授予/撤销CONNECT权限来控制它,而不是将规则放在pg_hba.conf条目中

来自postgresql doc。

使用grant将连接权限添加到xyz。

下一个问题3。 你可以在同一台机器上安装几个postgresql。 在卸载旧版本之前安装新版本的postgresql并迁移数据。 迁移完成后,卸载旧的。

答案 2 :(得分:0)

我知道这篇文章有点陈旧,但我最近不得不经历这个

除了实例管理器上的防火墙内容之外,实际上还需要pgadmin来使用pem文件。

我一直在尝试使用pgadmin3连接到我的amazon ec2的postgres sql server实例

使用open ssh将pm文件转换为crt + key并不适合我,所以我偶然发现了这篇文章

http://loc2log.ucoz.com/blog/getting_pgadmin_working_with_postgresql_at_amazon_ec2/2012-03-23-2

设置一个ssh隧道,让你从pgadmin转到实例的postgres而不会弄乱密钥文件。

我尝试了它并且有效。