![]() |
求醉的冲锋衣 · 一块自制自行车码表从B站火到GitHub,稚 ...· 1 年前 · |
![]() |
纯真的杯子 · 如何检测安卓系统中按钮的双击事件· 2 年前 · |
![]() |
追风的机器猫 · 如何将大小设置为CircularProgre ...· 2 年前 · |
我有一个Spring项目,尝试连接到本地PostgreSQL数据库。数据源正在从DataSourceBuilder中实例化。为了本例的目的,我有数据库用户名、密码和数据库URL硬编码(它们将通过属性文件传入),实现如下所示:
String url = "jdbc:postgresql://localhost:5433/<TABLENAME>";
String username = <USERNAME>;
String password = <PASSWORD>;
return DataSourceBuilder
.create()
.driverClassName("org.postgresql.Driver")
.url(url)
.username(username)
.password(password)
.build();
当我运行方法时,会引发以下异常:
Caused by: org.postgresql.util.PSQLException:
The server requested password-based authentication, but no password was provided.
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:534)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:141)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
我尝试使用
sudo passwd postgres
更改postgres用户密码几次,但这似乎行不通。有什么想法吗?
发布于 2020-03-24 07:38:19
我的猜测是,您没有在Spring容器中注入bean,所以请使用如下所示:
@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();
}
顺便说一下,在您的jdbcUrl中,您需要使用DatabaseName,而不是TableName。
Note :我认为最好利用Spring已经拥有自动配置的所有功能,所以我建议您这样做:
@Configuration
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public class DatabaseConfig extends HikariConfig {
@Bean
public DataSource dataSource() {
![]() |
纯真的杯子 · 如何检测安卓系统中按钮的双击事件 2 年前 |