2017-03-27 85 views
0

我有一個與我的PSQL數據庫連接的問題。我用C#編寫了一個程序,當我發佈它並將它放在另一臺PC上時(它設置爲從PC上的數據庫獲取數據,我編寫了應用程序),它完美地工作。現在我想把這個數據庫轉移到另一臺可以全天候運行的PC上,而且我很努力地做到這一點,但是我做到了(手動完成)。現在當db設置在24/7電腦上時,我無法連接到它。 例如。當我從筆記本電腦,我用於編程開始我的計劃,我得到這個:無法遠程連接到PSQL數據庫?

enter image description here

我的連接字符串看起來是這樣的:

string Connectionstring = "Server=192.168.130.240;Port=5433;User Id=postgres;" + 
"Password=password;Database=postgres;"; 
NpgsqlConnection conn = new NpgsqlConnection(Connectionstring); 
conn.Open(); 

附:我注意到的一個區別是,在我的筆記本電腦上,我用來編寫連接字符串的方式與IP:127.0.0.1相同,只要打開PSQL,它就會自動啓動並且已經登錄,但是在24/7 PC上當我啓動psql.exe時,它會啓動並關閉,但是當我啓動SQL Shell(PSQL)時,每次啓動時都需要輸入服務器,數據庫,端口,用戶名和密碼。

如果有人有任何想法如何解決此問題,請幫助,因爲這是我的項目的最後一步,我不能得到它的工作...

+0

假設機器在同一網絡上並且可以互相看到 - 端口通常是5432,所以試試看。如果沒有運氣確保運行服務器的計算機上的防火牆中有規則允許端口上的傳入連接。 –

+0

@AlexK。我在編程時切換端口到5433因爲出錯了,但我會嘗試這兩種解決方案並回復您 –

+0

一個可能的問題是您需要配置postgresql來接受非本地連接。您可以通過將您的地址添加到pg_hba.conf來完成此操作。 https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html – mlinth

回答

1

添加防火牆例外PGSQL數據庫的傳入TCP連接港口。 默認情況下,它是5432端口。 這是在遠程計算機上保存數據庫的情況下所必需的。