【问题标题】:PHP connection to PostgreSQL, FATAL: password authentication failed for userPHP 与 PostgreSQL 的连接,致命:用户的密码验证失败
【发布时间】:2014-09-02 15:00:47
【问题描述】:

我是 postgreSQL 和 Web 开发的新手,最近我尝试通过 PHP 连接我之前创建的数据库。但是事情没有解决,我得到用户 postgres 的密码验证失败。我一直在寻找任何地方,但找不到任何解决此问题的方法。

数据库托管在我的 iMac 上,端口 5432 和 heliohost.org 上的 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 = localhost

如果有人建议启动并运行它,我对此有点困惑。

谢谢大家!

【问题讨论】:

  • 您正在尝试在您的托管服务提供商上运行脚本,并且您希望连接到在本地计算机上运行的数据库?至少你在配置中有错误的主机名(如果这确实是你想要做的)

标签: php postgresql database-connection


【解决方案1】:

如果您将127.0.0.1 指定为您的主机,它将尝试访问您的网络服务器heilohost.org,而不是您的iMac。如果您真的想这样做(并且有很多原因表明这是一个糟糕的主意),您必须设置listen_address=0.0.0.0,将路由器上的端口转发到您的 iMac,并使用您的public IP 地址连接字符串。

【讨论】:

  • 感谢您的回答,我尝试了上述所有内容,但出现此错误:无法连接到 PostgreSQL 服务器:无法连接到服务器:连接被拒绝服务器是否在主机“my_computer_ip”上运行并接受端口 5432 上的 TCP/IP 连接?
  • 您是否将家庭路由器设置为将该端口上的连接转发到您的 mac?你是怎么测试的?您的网络托管服务是否允许在随机端口上进行出站连接?
  • 感谢您的回答,我已经打开了我的端口 5432,该端口现在应该是打开的,但经过测试,无法访问我的计算机和数据库。所以现在我决定转移到另一台服务器,我面临另一个问题,当我必须通过 SSH 连接到数据库时如何运行 osm2pgsql ?我正在使用 A2hosting,他们一直说 Osm2pgsql 需要 SSH 连接,这似乎是错误的,因为我过去几周没有 ssh 连接。任何的想法 ?很抱歉打扰您,但我想让事情顺利进行,遗憾的是现在还不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
  • 1970-01-01
  • 2017-02-06
相关资源
最近更新 更多