我有一个亚马逊服务器实例(Amazon Linux AMI版本2010.11.2(测试版)
)正在运行我的postgreSQL服务器8.4。我想用本地运行的pgAdmin访问它,我无法连接它。
我有很多问题需要帮助:
1。在服务器postgresql正在运行,psql能够与它连接但我无法远程访问它。(我想端口5432不对外界开放如何打开它,前提是我无法访问亚马逊aws控制台访问SSH,我已将pg_hba.conf
修改为信任模式,将postgresql.conf
修改为listen_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服务器吗?
答案 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而不会弄乱密钥文件。
我尝试了它并且有效。