我創建了一個使用Java的應用程序,它使用PostgreSQL數據庫來存儲數據。如何使應用程序在另一臺機器上工作?
但是,當我完成應用程序的拋光並將其編譯成一個罐子&上傳到我的朋友的測試環境後,它不再工作了!
我該如何解決這個問題?
P.S:對不起,我的英文不好
我創建了一個使用Java的應用程序,它使用PostgreSQL數據庫來存儲數據。如何使應用程序在另一臺機器上工作?
但是,當我完成應用程序的拋光並將其編譯成一個罐子&上傳到我的朋友的測試環境後,它不再工作了!
我該如何解決這個問題?
P.S:對不起,我的英文不好
如果我正確理解你的問題,你已經開發了一個應用程序,並希望與多個用戶共享該應用程序。您的應用程序連接到PostgreSQL數據庫,但由於您的用戶沒有數據庫,因此他們在執行應用程序時會出錯。
要解決上述問題,您需要確定每個用戶是否需要自己的數據庫 - 在這種情況下,正在運行的PostgreSQL安裝是使用您的應用程序的先決條件。
如果是這種情況,我建議您編寫一些SQL腳本來設置您的數據庫並使用README文件向用戶提供它們,說明如何執行腳本而不是將安裝程序捆綁到您的應用程序中。
或
如果你的用戶共享一個數據庫,使通過互聯網/網絡可在安裝或使用服務,如Heroku的,亞馬遜AWS RDS服務或EnterpriseDB公司的雲產品(基於Amazon AWS)。
如果您可以提供更多關於您正在使用的選項的詳細信息,我相信您會得到更具體的幫助。如果沒有,希望上面的通用建議有幫助。 「它工作!」
如何連接到一個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
希望這有助於。
「它工作!你真的需要更多地描述你的問題。 – Zavior
你的朋友是否有正在運行的Postgres服務器? –
假設您使用JDBC連接到PostgreSQL,您的PgSQL是否接受不是來自'localhost'的傳入連接? – 2014-02-10 15:41:24