2

我有一个运行我的 postgreSQL 服务器 8.4 的亚马逊服务器实例(Amazon Linux AMI 版本 2010.11.2(测试版))。我想使用本地运行的 pgAdmin 访问它,但我无法连接它。
我有很多问题需要帮助:
1. 在服务器上,postgresql 正在运行,psql 能够与之连接,但我无法远程访问它。(我猜端口 5432 未对外界开放,我该如何打开它提供我无权访问亚马逊 AWS 控制台,只能访问 SSH,并且我已修改pg_hba.conf为信任模式和postgresql.conflisten_addresses = '*'
2.在我的服务器上有两个角色:postgres并且XYZ我无法使用 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 服务器吗?

4

2 回答 2

1

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

来自 postgresql 文档。

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

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

于 2013-10-04T10:07:50.587 回答
1

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

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

然后在您的 PC 上,只需将 pg_admin 连接到 localhost:6432 即可。

是隧道这一6432端的本地端口。这是从远程机器127.0.0.1:5432连接的地址。

就升级而言,您要么需要检查该版本的 AMI 提供哪些软件包,要么自己编译它(或者当然升级 AMI 的版本)。

于 2013-10-04T09:53:04.213 回答