2015-09-28 55 views
0

我想弄清楚如何通過我的ruby應用程序使用PGConn連接,以便連接到我的postgres數據庫在aws ec2 linux服務器上。連接到本地linux安裝postgres數據庫

db_connection = PGconn.connect("ip-172-31-90.9.us-west-2.compute.internal", 5432, '', '', "testdb", "username", "password") 

我不斷收到一個錯誤

app.rb:21:in `initialize': could not translate host name "ip-172-31-90-9.us-west-2.compute.internal." to address: nodename nor servname provided, or not known (PG::ConnectionBad) 

我跑/ sbin目錄/使用ifconfig -a Linux服務器來獲得IP地址,但它仍然無法連接。我也按照網站上的說明編輯了文件http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html

回答

2

「ip-172-31-90-9」的IP似乎是私有IP地址。

所以你需要做什麼:

  1. 分配公網IP或彈性IP到EC2實例。
  2. 設置入站規則在其安全組,並打開端口5432來0.0.0.0/0或在您的情況下,任何IP地址範圍
  3. 測試端口從當地

    的telnet NEW_Public_IP 5432

如果能,那麼你應該沒問題連接數據庫。

+0

我試過了,但仍然說連接被拒絕。 – user2974739

+0

我最終也不得不根據本文檔進行更改才能使其正常工作。 http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html感謝您的幫助! – user2974739