2014-09-02 94 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

相关问题