使用 Spring 尝试 Heroku PostgreSQL 时连接失败

Failed connection when trying for Heroku PostgreSQL with Spring

我正在尝试设置 Spring 引导应用程序。目前我在本地环境中工作,并且有一个 Heroku PostgreSQL 数据库。当我启动我的应用程序时,它以错误开头:

HikariPool-1 - Exception during pool initialization.
org.postgresql.util.PSQLException: El intento de conexión falló.
...
Caused by: java.net.UnknownHostException: @host
...
HHH000342: Could not obtain connection to query metadata

我在其中添加了正确的主机名并将其隐藏以确保安全。我知道这个主机名是正确的,因为我已经使用 Express 应用成功连接了。

我的 POM.xml 具有以下依赖项:}

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

我的 application.properties 文件是:

spring.datasource.url=jdbc:postgresql://@host:5432/dal2fiqv9or5eg?user=----&password=----&sslmode=require
spring.datasource.username=----
spring.datasource.password=----
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa-hibernate.ddl-auto=create-drop
spring.jpa.show=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true

我又一次隐藏了主机、用户名和密码。

此后应用程序启动。

您的 application.properties 中的 spring.datasource.url 属性 似乎不正确。

这个文件对我有用:

    #postgres parameters
spring.datasource.url=jdbc:postgresql://<host>:<port>/<database>
spring.datasource.username=<user>
spring.datasource.password=<password>
spring.jpa.show-sql=true

## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update

logging.level.org.springframework=TRACE

logging.level.org.hibernate.type=TRACE
server.port=${PORT:8080}

端口、主机、数据库、用户和密码的值可以从您添加到 Heroku 应用程序的 HerokuPostgres 插件中派生

请勿添加@或任何特殊符号。只需将这些值替换为您在 Heroku 中看到的值。 例如:spring.datasource.url=jdbc:postgresql://myhostname:5432/mydbname