PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PSQLException:Der Server hat eine kennwortbasierte Authentifizierung angefordert, aber es wurde kein Kennwort angegeben

Ich vermute, dass Sie Ihre Bohne nicht in den Spring-Container injizieren, also verwenden Sie so etwas:

@Bean
public DataSource dataSource() {
    String url = "jdbc:postgresql://localhost:5433/<DATABASE_NAME>";

    String username = <USERNAME>;
    String password = <PASSWORD>;

    return DataSourceBuilder
            .create()
            .driverClassName("org.postgresql.Driver")
            .url(url)
            .username(username)
            .password(password)
            .build();
}

Übrigens müssen Sie in Ihrer jdbcUrl den DatabaseName verwenden, nicht den TableName.

Hinweis :Ich denke, es ist besser zu nutzen, wie Spring Boot bereits alles automatisch konfiguriert hat, also schlage ich Ihnen vor, so etwas zu tun:

@Configuration
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public class DatabaseConfig extends HikariConfig {
    @Bean
    public DataSource dataSource() {
        return new HikariDataSource(this);
    }
}

Und verwenden Sie die folgenden Eigenschaften:

spring.datasource.hikari.jdbcUrl=jdbc:postgresql://localhost:5433/blog
spring.datasource.hikari.username=user
spring.datasource.hikari.password=user
spring.datasource.hikari.driverClassName=org.postgresql.Driver

Sie können eines meiner Arbeitsbeispiele hier überprüfen:https://github.com/vladucuvoican/simple-blog/blob/master/src/main/resources/application.properties