到PostgreSQL的PHP连接,致命错误:用户密码验证失败
我是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 =本地主机
我对此有点困惑,如果有人有建议让它启动并运行。
谢谢大家!
如果您指定127.0.0.1
作为您的主机,它将尝试打到您的网络服务器heilohost.org
,而不是您的iMac。如果你真的想这样做(并且有很多理由说它是一个可怕的想法),你必须设置listen_address=0.0.0.0
,将路由器上的端口转发给你的iMac,并在连接字符串中使用你的public IP地址。
感谢你的回答,我尝试了上面的所有说法,但是我得到了这个错误: 无法连接到PostgreSQL服务器:无法连接到服务器:拒绝连接服务器是否在主机“my_computer_ip”上运行并接受端口5432上的TCP/IP连接? – TheProApps 2014-09-03 12:39:52
您是否将您的家庭路由器设置为将该端口上的连接转发给您的Mac?你是如何测试它的?您的虚拟主机服务是否允许随机端口上的出站连接? – PaulProgrammer 2014-09-03 14:26:02
谢谢你的回答,我已经打开了我的5432端口,现在应该是开放的,但已经过测试,无法访问我的电脑和我的数据库。所以,现在我决定迁移到另一台服务器,并面临另一个问题,当我必须通过SSH连接到数据库时,如何运行osm2pgsql?我使用A2hosting,他们一直说Osm2pgsql需要SSH连接,这似乎是错误的,因为我连接了过去几周没有SSH。任何想法 ?我非常抱歉打扰你,但我想让事情有效,可惜现在不行。 – TheProApps 2014-09-11 21:40:12
您正试图在您的托管服务提供商上运行脚本,并且您希望连接到在本地计算机上运行的数据库?至少你在配置中有错误的主机名(如果这确实是你想要做的) – Cfreak 2014-09-02 15:10:00