2013-05-03 88 views
0

我试图连接到我的应用程序在Heroku的PostgreSQL数据库:无法连接到PostgreSQL服务器

$host = "ec2-54-235-242-31.compute-1.amazonaws.com"; 
$username = "user"; 
$password = "pass"; 
$database = "dbname"; 
$port = "5432"; 

$dbconn = pg_connect("host=".$host." port=".$port 
      ." dbname=".$database." user=".$username." password=".$password) 
or die('Could not connect: ' . pg_last_error()); 

,但我得到这个错误:

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host "69.196.177.196", user "user", database "dbname", SSL off in D:\wamp\www\heroku_app\test.php on line 53

什么问题在这里?我该如何解决它?

注意:这只发生在我在本地机器上运行(通过WAMP服务器)。如果我把它部署到Heroku的,然后它运行良好

+0

这是一个常见问题,我很惊讶你没有找到有关这方面的详细信息,只需使用如下简单的Google搜索:http://google.com/search?q="pg_hba.conf+entry+for+host“ + heroku – 2013-05-03 06:53:12

+0

这是我做的第一件事,但我找不到解决方案。你认为哪个链接有解决方案? – Chin 2013-05-03 12:59:07

+0

几乎所有的人都表明,问题在于您需要使用SSL进行连接。也就是说,谷歌向不同的人展示了不同的结果,所以你很可能会看到与我完全不同的东西。 – 2013-05-04 08:08:45

回答

0

检查this quick tip进一步的帮助,但是,简单地说,你用你获得的证书:

heroku pg:credentials COLOR 

...其中颜色与返回值的一部分:

heroku addons:add heroku-postgresql 

其中双打为command to add postgres to your application

+0

我已经获得它,并使用相同的凭证,我可以使用pgAdmin连接到数据库。当我使用PHP – Chin 2013-05-03 04:39:53

3

这里的关键错误是SSL off。 Heroku Postgres需要SSL进行外部连接。确保你的PHP是用SSL编译的,并在你的连接sslmode=require中指定它。

+0

时,它不起作用我如何使用SSL编译PHP? – Chin 2013-05-03 05:04:44

0

添加 “sslmode =需要;”到你的连接字符串。