2013-10-04 195 views
2

我有一個亞馬遜服務器實例(亞馬遜Linux AMI版本2010.11.2(測試版) ),它運行我的postgreSQL服務器8.4。我想用我的本地運行的pgAdmin訪問它,但我無法連接它。
我有很多問題,我需要幫助:
1.在服務器postgresql正在運行,並且psql能夠與它連接,但是我無法遠程訪問它(我猜測端口5432並不是爲外部世界打開的)我打開它提供我沒有訪問亞馬遜aws控制檯只能訪問SSH,我已修改信任模式pg_hba.confpostgresql.conflisten_addresses = '*')。
2.1936我的服務器有兩個角色:postgresXYZ,我不能與XYZ登錄
\du輸出繼電器是:PostgreSQL亞馬遜Linux

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服務器?

回答

1

你想要的是一個ssh隧道。如果你的客戶機是Windows,那麼檢查膩子。否則,你可以這樣做:

ssh -L 6432:127.0.0.1:5432 [email protected] 

然後你的電腦上,只需pg_admin連接到本地主機:6432和您去。

6432是隧道末端的本地端口。 127.0.0.1:5432是從遠程機器連接到的地址。

就升級而言,您需要檢查該版本的AMI提供的軟件包或自己編譯(或者升級AMI的版本)。

+0

是的,我使用膩子,但我認爲如果我從ssh(iptables入口)打開5432端口,那麼它將保持嘲笑亞馬遜aws端口管理服務 –

+0

整點是,你不需要打開任何洞防火牆。數據通過你的(已經允許的,可能的)加密的ssh連接。每一端的應用程序都認爲他們正在與本地主機通話。 –

+0

其實我從來沒有見過一個鏈接爲6432:127.0.0.1:5432請你詳細說明一下,我不是很有經驗。 –

1

首先,問題2 提示:要連接到特定數據庫,用戶不僅必須通過pg_hba.conf檢查,還必須具有數據庫的CONNECT權限。如果您希望限制哪些用戶可以連接到哪些數據庫,通過授予/撤銷CONNECT權限來控制此通常比從postgresql doc將pg_hba.conf條目中的規則放入

更容易。

使用授權將連接權限添加到xyz。

下一個問題3. 你可以在同一臺機器上安裝幾個postgresql。 在卸載舊版本並遷移數據之前安裝新版本的postgresql。 遷移完成後,卸載舊的。

+0

從哪裏可以得到亞馬遜linux AMI postgresql 9.3,請不要說'只更新yum或添加centos版本庫,你可以從yum安裝它' –

0

我知道這篇文章是有點老了,但我最近剛去通過這個

除了防火牆的東西在實例管理器,你真正需要的pgAdmin使用PEM文件。

我一直在試圖連接到使用pgadmin3

捏造圍繞開放ssh來轉換一個PEM文件到CRT +鍵不是爲我工作了的Postgres的SQL Server的我的Amazon EC2的實例,所以我迷迷糊糊在這篇文章中

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

其中設置一個SSH隧道,讓你從你的pgAdmin到該實例的Postgres的去沒有用密鑰文件搞亂。

我試過了,它的工作原理。