繁体   English   中英

Heroku PHP pgconnect-用户密码验证失败

[英]Heroku PHP pgconnect - password authentication failed for user

我正在尝试从Heroku上的PHP连接到PostgreSQL。 为简化起见,我尝试过:

function pg_connection_string_from_database_url() {
    extract(parse_url(getenv("DATABASE_URL")));
    return "user=$user password=$pass host=$host sslmode=require dbname=" . substr($path, 1);
}
$pg_conn = pg_connect(pg_connection_string_from_database_url());

我不断收到此错误:

FATAL: password authentication failed for user

我试过了:

  • 使用Navicat使用相同的凭据连接:有效
  • 使用PHP连接到本地pgsql数据库:有效
  • 使用CLI提供的相同凭据进行连接:有效

这使我认为PHP应该使用密码来做一些事情。 我在网上找到了有关MD5的一些信息,但找不到任何特定的信息。

任何想法如何解决这个问题?

在这里工作正常:

~ dzuelke$ heroku run bash
Running `bash` attached to terminal... up, run.4366
~ $ php -r '
> function pg_connection_string_from_database_url() {
>     extract(parse_url(getenv("DATABASE_URL")));
>     return "user=$user password=$pass host=$host sslmode=require dbname=" . substr($path, 1);
> }
> $pg_conn = pg_connect(pg_connection_string_from_database_url());
> var_dump($pg_conn);'
resource(4) of type (pgsql link)

进行两次和三次检查,以确保您的DATABASE_URL是正确的,这是您要使用的实际连接(相对于另一个env var), getenv("DATABASE_URL")返回什么值,等等。

另外,您没有指定端口; 因此它将使用默认值5432,可能不正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM