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

时间:2016-09-28 16:20:30

标签: java spring postgresql heroku spring-boot

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

现在,我正在部署Spring Boot应用程序。 我的application.properties文件中找不到DB道具/凭据,因为我应该在Heroku 配置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"

问题

为什么用户 u24453 (每次重新部署时此用户更改的方式)失败,在我的Config Var中,我键入了用户 janxgspmlpjgbn ?< / p>

修改

我的配置变种现在看起来如何: enter image description here

1 个答案:

答案 0 :(得分:4)

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