【问题标题】:Unable to connect to PostgreSQL server无法连接到 PostgreSQL 服务器
【发布时间】:2013-11-11 05:18:50
【问题描述】:

我正在尝试连接到 Heroku 上我的应用程序的 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());

但我收到此错误:

警告:pg_connect() [function.pg-connect]:无法连接到 PostgreSQL 服务器:致命:主机“69.196.177.196”、用户“user”、数据库“dbname”、SSL 关闭没有 pg_hba.conf 条目在 D:\wamp\www\heroku_app\test.php 第 53 行

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

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

【问题讨论】:

  • 这是一个常见问题解答,我很惊讶您没有通过简单的 Google 搜索找到有关此问题的详细信息,例如:google.com/…
  • 这是我做的第一件事,但我找不到解决方案。您认为哪个链接有解决方案?
  • 几乎所有这些都表明问题在于您需要使用 SSL 连接。也就是说,Google 向不同的人显示不同的结果,所以你很可能会看到与我完全不同的东西。

标签: php postgresql heroku wampserver


【解决方案1】:

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

【讨论】:

  • 如何使用 SSL 编译 PHP?
【解决方案2】:

请查看this quick tip 以获取更多帮助,但简而言之,您可以使用以下方式获取您的凭据:

heroku pg:credentials COLOR

... 其中 COLOR 是来自以下位置的返回值的一部分:

heroku addons:add heroku-postgresql

兼作command to add postgres to your application

【讨论】:

  • 我已经获得了它,并且使用相同的凭据我可以使用 pgAdmin 连接到数据库。当我使用 PHP 时它不起作用
【解决方案3】:

添加“sslmode=require;”到您的连接字符串。

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 2019-10-08
    • 2017-08-02
    • 2017-03-03
    • 2012-10-10
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2021-02-27
    相关资源
    最近更新 更多