2014-02-10 86 views
-1

我創建了一個使用Java的應用程序,它使用PostgreSQL數據庫來存儲數據。如何使應用程序在另一臺機器上工作?

但是,當我完成應用程序的拋光並將其編譯成一個罐子&上傳到我的朋友的測試環境後,它不再工作了!

我該如何解決這個問題?

P.S:對不起,我的英文不好

+3

「它工作!你真的需要更多地描述你的問題。 – Zavior

+0

你的朋友是否有正在運行的Postgres服務器? –

+0

假設您使用JDBC連接到PostgreSQL,您的PgSQL是否接受不是來自'localhost'的傳入連接? – 2014-02-10 15:41:24

回答

1

如果我正確理解你的問題,你已經開發了一個應用程序,並希望與多個用戶共享該應用程序。您的應用程序連接到PostgreSQL數據庫,但由於您的用戶沒有數據庫,因此他們在執行應用程序時會出錯。

要解決上述問題,您需要確定每個用戶是否需要自己的數據庫 - 在這種情況下,正在運行的PostgreSQL安裝是使用您的應用程序的先決條件。

如果是這種情況,我建議您編寫一些SQL腳本來設置您的數據庫並使用README文件向用戶提供它們,說明如何執行腳本而不是將安裝程序捆綁到您的應用程序中。

如果你的用戶共享一個數據庫,使通過互聯網/網絡可在安裝或使用服務,如Heroku的,亞馬遜AWS RDS服務或EnterpriseDB公司的雲產品(基於Amazon AWS)。

如果您可以提供更多關於您正在使用的選項的詳細信息,我相信您會得到更具體的幫助。如果沒有,希望上面的通用建議有幫助。 「它工作!」

0

如何連接到一個Postgres數據庫是不開放的互聯網:

確保您postres DB偵聽到本地主機。它可能做了,但還是:

往裏

/etc/postgresql/9.1/main/postgresql.conf 

爲線

​​

你想要的下一個文件是

/etc/postgresql/9.1/main/pg_hba.conf 

就要排隊

local all all trust 

這可以訪問localhost上的所有數據庫上的所有用戶角色。

現在,您需要打開一個隧道,從應用程序所在的位置到您的數據庫服務器。假設你的db監聽默認端口5432,那麼執行

ssh -v -L 5432:127.0.0.1:5432 [email protected]_db_server 

如果運行Windows,請在cygwin中執行此操作,或在Putty中進行相應操作。

現在,您的應用程序可以連接到你的數據庫在localhost:5432即

jdbc:postgresql://localhost:5432/your_db 

希望這有助於。

相關問題