Heroku - 致命:用户 <> 的密码验证失败

Posted

技术标签:

【中文标题】Heroku - 致命:用户 <> 的密码验证失败【英文标题】:Heroku - FATAL: password authentication failed for user <> 【发布时间】:2017-02-06 17:55:49 【问题描述】:

首先,我在 Heroku 中创建了 PostgreSQL 数据库。我通过 pgAdmin 远程访问手动创建了我的 DB/schema/tables。我知道我成功了,因为它更新了我的行数限制。

现在,我正在部署一个 Spring Boot 应用程序。 在我的application.properties 文件中没有找到数据库道具/凭据,因为我应该在 Heroku Config Vars 中执行此操作。例如,我的数据库用户名是 janxgspmlpjgbn

项目构建成功,但是,在日志中我看到它有这个异常。

2016-09-28 16:12:31.184 [ERROR] org.apache.juli.logging.DirectJDKLog.log:181 - Unable to create initial connections of pool.
2016-09-28T16:12:31.185772+00:00 app[web.1]: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "u24453"

问题

为什么在我的 Config Var 中输入用户 janxgspmlpjgbn 时,用户 u24453 会失败(顺便说一下,每次我重新部署此用户都会更改)?

编辑

这是我的 Config Vars 现在的样子:

【问题讨论】:

您提到您“键入”了您的配置变量。您没有使用 Heroku 为您提供的DATABASE_URL 嗨,我不确定它使用的是我“键入”的 DATABASE_URL 还是 SPRING_DATASOURCE_ 变量。 【参考方案1】:

u24453 可能是操作系统用户名(Heroku 在您的应用程序在 Ubuntu Linux 上运行时为它创建的用户名)。

我相信 Postgres 驱动程序会默认使用操作系统用户名作为您的数据库用户名(如果未提供用户名)。因此,我怀疑数据库用户名没有正确进入配置。

在你的application.yml 中你应该有这个:

spring:
  datasource:
    url: $JDBC_DATABASE_URL
    username: $JDBC_DATABASE_USERNAME
    password: $JDBC_DATABASE_PASSWORD

欲了解更多信息,请参阅Connecting to Relational Databases on Heroku with Java

【讨论】:

这可能是因为我检查了数据库的登录角色并且数据库用户名看起来不像那样。我懂了!我相信我错过了这个。我认为它会根据我在 Config Vars 中设置的内容自动映射。我现在就试试这个。 完美!现在开始工作了!非常感谢! (Heroku 的结束票)

以上是关于Heroku - 致命:用户 <> 的密码验证失败的主要内容,如果未能解决你的问题,请参考以下文章

推送到 Heroku 失败 - 没有这样的应用程序致命

Heroku 权限被拒绝。致命:无法从远程存储库中读取。

运行 git heroku push master 时出现致命错误

无法推送到 Heroku '致命:无法访问..无法解析主机:(无);提供节点名或服务名,或未知'

Heroku“权限被拒绝(公钥)致命:无法从远程存储库中读取”问题

无法在 Heroku 上部署 Flask 应用程序 [致命错误:mpfr.h:没有这样的文件或目录]