2014-09-02 116 views
0

我是postgreSQL和web開發的新手,最近我試圖通過PHP連接我以前創建的數據庫。但事情沒有解決,我得到了用戶postgres的密碼認證失敗。我一直在尋找,但無法找到任何解決此問題的方法。到PostgreSQL的PHP​​連接,致命錯誤:用戶密碼驗證失敗

數據庫託管在我的iMac,端口5432和php腳本上,它們將在稍後用於查詢數據庫。

這裏是我的PHP腳本:

<?php 
$host  = "host=127.0.0.1"; 
$port  = "port=5432"; 
$dbname  = "dbname=osm"; 
$credentials = "user=postgres password=newPassword"; 

$db = pg_connect("$host $port $dbname $credentials" ); 

if(!$db){ 
    echo "Error : Unable to open database\n"; 
} else { 
    echo "Opened database successfully\n"; 
} 
?> 

我的pg_hba.conf看起來是這樣的:

當地所有Postgres的MD5

和我的postgresql.conf有:的listen_addresses =本地主機

我對此有點困惑,如果有人有建議讓它啓動並運行。

謝謝大家!

+0

您正試圖在您的託管服務提供商上運行腳本,並且您希望連接到在本地計算機上運行的數據庫?至少你在配置中有錯誤的主機名(如果這確實是你想要做的) – Cfreak 2014-09-02 15:10:00

回答

0

如果您指定127.0.0.1作爲您的主機,它將嘗試打到您的網絡服務器heilohost.org,而不是您的iMac。如果你真的想這樣做(並且有很多理由說它是一個可怕的想法),你必須設置listen_address=0.0.0.0,將路由器上的端口轉發給你的iMac,並在連接字符串中使用你的public IP地址。

+0

感謝你的回答,我嘗試了上面的所有說法,但是我得到了這個錯誤: 無法連接到PostgreSQL服務器:無法連接到服務器:拒絕連接服務器是否在主機「my_computer_ip」上運行並接受端口5432上的TCP/IP連接? – TheProApps 2014-09-03 12:39:52

+0

您是否將您的家庭路由器設置爲將該端口上的連接轉發給您的Mac?你是如何測試它的?您的虛擬主機服務是否允許隨機端口上的出站連接? – PaulProgrammer 2014-09-03 14:26:02

+0

謝謝你的回答,我已經打開了我的5432端口,現在應該是開放的,但已經過測試,無法訪問我的電腦和我的數據庫。所以,現在我決定遷移到另一臺服務器,並面臨另一個問題,當我必須通過SSH連接到數據庫時,如何運行osm2pgsql?我使用A2hosting,他們一直說Osm2pgsql需要SSH連接,這似乎是錯誤的,因爲我連接了過去幾周沒有SSH。任何想法 ?我非常抱歉打擾你,但我想讓事情有效,可惜現在不行。 – TheProApps 2014-09-11 21:40:12

相關問題