2016-09-16 73 views
0

首先:我唯一的SQL體驗是SQLite,它是一個無服務器引擎。我是所有這個客戶/服務器故事的新手。將客戶端連接到便攜式PosgreSQL服務器

總結我的目標:我需要從不同的計算機讀寫PosgreSQL數據庫。這些計算機(都安裝了Windows 7或10)共享相同的網絡,但我無法在其上安裝任何軟件。

我的想法是下載便攜式PostgreSQL服務器並將其保存在網絡共享目錄(例如Y:\ PortableProject)中,以便所有計算機都可以訪問可執行文件和包含數據庫的Data文件夾。假設網絡的IP是192.170.1.200(從ipconfig命令),這裏是我試過的步驟,到目前爲止做:

  1. 爲了讓IP 192.170.1.200是一臺主機,開放pg_hba.conf文件,並添加下面一行在EOF

    host all    all    192.170.1.200/32     trust 
    
  2. 爲了給權限的所有計算機訪問服務器,開放postgresql.conf和更新listen_addresses*

    listen_addresses = '*' 
    
  3. 在一臺計算機中打開命令提示符(例如,計算機A),並用以下命令啓動從提示服務器:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" start -D "Y:\PortableProject\PostgreSQLPortable\Data\data" 
    
  4. 繼續寫作,並在所有的計算機閱讀。例如,在計算機B,打開其提示命令和讀取從數據庫dbtest上表tabtest的所有信息(假定它們存在)與所述命令:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\psql.exe" -h 192.170.1.200 -p 5432 -U postgres -d dbtest -c "SELECT * FROM tabtest" 
    
  5. 關閉在計算機A上的連接:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" stop -D "Y:\PortableProject\PostgreSQLPortable\Data\data" 
    

出現該問題上的步驟4.即使我從計算機A上運行它,我得到以下錯誤

psql: could not connect to server: Connection refused (0x0000274D/10061) 
     Is the server running on host "192.170.1.200" and accepting 
     TCP/IP connections on port 5432? 

我是否完全錯了?是否有可能實現我的目標?

+0

不知道爲什麼你使用便攜式postgre而不是常規的。你的問題是從不同的PC讀取數據庫,普通的數據庫很好,你不需要在這些PC上安裝SW。便攜式適用於需要將辦公地點放在辦公室外的地方。 –

+0

對不起,但我真的不知道如何繼續按照你的建議。我如何從postgre數據庫讀取數據,而不需要安裝並且沒有可移植的postgres?我還需要從網絡中的所有計算機插入和更新。 –

+1

也許我不明白你的問題。但是,如果你不想安裝任何東西開發一個Web應用程序。 –

回答

1

服務器是否在主機「192.170.1.200」上運行並接受端口5432上的TCP/IP連接?

這意味着服務器正在運行在192.170.1.200,現在你正在從服務器PC或從不同的PC執行?

pg_hba.conf將列出允許其他地址/用戶訪問該服務器的內容。

所以,如果你是在同一臺PC接入您使用

# TYPE DATABASE  USER   ADDRESS     METHOD 

# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 

對於外部地址,您使用類似

host all    all    192.170.1.1/24   trust 

這將允許下面的IP地址範圍訪問PC。 IP Calculator

HostMin: 192.170.1.1 
HostMax: 192.170.1.254