我一直在後端使用Postgresql構建一個Lazarus Pascal程序。它用於打開數據庫的以下行可以很好地工作。Lazarus + Postgres:不完整的啓動數據包
dbConn:= TPQConnection.Create(nil);
dbConn.HostName := 'localhost';
dbConn.DatabaseName:= 'dbHRS';
dbconn.UserName:='mizk';
dbConn.Password:='123';
dbConn.Open;
if dbConn.Connected Then
OpenHRSDB := true
else
OpenHRSDB := False;
但我從本地主機更改服務器的IP(局域網上)的那一刻,程序則只是停止。沒有錯誤或警告。我不知道發生了什麼。
以下是一些可能有助於縮小問題範圍的相關細節。
- 我正在運行的程序來自與服務器位於同一局域網上的工作站。
- 兩臺機器都運行Ubuntu 12.04桌面
- 我可以使用PGAdmin III訪問服務器上的postgres數據庫,所以我猜這不是防火牆問題。
- 我已經允許從ufw和ufw postgresql被禁用。
- 奇怪的是,當防火牆被禁用時,我可以使用工作站從終端SSH服務器。但是,當它啓用時,我不能
我現在最關心的是爲什麼帕斯卡爾計劃不起作用時,IP號碼給出和postgres日誌中的消息是什麼。
任何輸入真的很感激。謝謝!
編輯:下面是詳細信息:
文件postgresql.conf中包含這些行:
的listen_addresses = '*'
端口= 5430
所以,對不起......這是正確的日誌AFTER連接日誌記錄打開。 日誌文件包含此後我關機,重新啓動並運行我的程序:
2014-03-06 18:28:23 IST日誌:數據庫系統已關閉在2014-03-06 18:28:22 IST 2014年3月6日18時28分23秒IST LOG:連接接收:主機= [本地] 2014年3月6日18時28分23秒IST LOG:不完全啓動包 2014年3月6日18時28分23秒IST LOG:數據庫系統是準備接受連接 2014年3月6日18時28分23秒IST LOG:自動清理啓動器啓動的 2014年3月6日18時28分24秒IST LOG:連接接收:主機= [本地] 2014-03-06 18:28:24 IST日誌:連接授權:用戶= postgres數據庫= postgres 2014-03-06 18:28:24 IST日誌:連接收到:主機= [本地] 2014年3月6日18時28分24秒IST LOG:連接授權:用戶= Postgres數據庫= postgres的 2014年3月6日18點28分25秒IST LOG:連接接收:主機= [本地] 2014-03- 06 18點28分25秒IST LOG:連接授權:用戶= Postgres數據庫= postgres的 2014年3月6日18時28分29秒IST LOG:連接接收:主機= [本地] 2014年3月6日18時28分: 29 IST LOG:不完全啓動包
不確定您提到的觀點是否涵蓋了這一點,但服務器參數[「listen_addresses」](http://www.postgresql.org/docs/9.3/static/runtime-config-connection.html)實例?默認情況下,這是localhost(當你在它的時候,也檢查端口) – DrColossos
@DrColossos yes,listen_addresses設置爲'*'。否則PGAdmin III將無法工作。 – itsols
那麼pg_hba文件呢?那裏的所有參賽作品都是正確的?也許pgAdmin與系統的連接方式與腳本不同? – DrColossos