如何解决 CockroachDB 和 Spring-Boot 的密码问题
How to fix password problem with CockroachDB and Spring-Boot
我对 spring-boot 和 cockroachDB 有疑问。在我的本地机器上运行 cockraochDB 和 spring-boot。 spring 启动一开始,我就遇到异常。蟑螂以不安全模式运行。
application.yaml:
spring:
datasource:
url: jdbc:postgresql:localhost:26257/mydb?sslmode=disable
username: myuser
password:
jpa:
properties:
hibernate.dialect: org.hibernate.dialect.PostgreSQL94Dialect
show-sql: true
database-platform: org.hibernate.dialect.PostgreSQL94Dialect
hibernate:
ddl-auto: create
pom.xml 部分:
[...]
<dependencies>
<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.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
</dependencies>
[...]
我创建了两个用户。一个没有密码,一个有密码,在 cockroachDB 上的数据库 "mydb" 中。两者都不起作用。将“?sslmode=disable”附加到 spring.datasource.url 中的 url 也不起作用。
没有密码的异常:
org.postgresql.util.PSQLException: The server requested password-based authentication, but no password was provided.
密码异常:
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"
感谢您的帮助
您必须在数据源 url 中的 postgresql 之后使用 ://
。
您的数据源 url 应该是
jdbc:postgresql://localhost:26257/mydb?sslmode=disable
我对 spring-boot 和 cockroachDB 有疑问。在我的本地机器上运行 cockraochDB 和 spring-boot。 spring 启动一开始,我就遇到异常。蟑螂以不安全模式运行。
application.yaml:
spring:
datasource:
url: jdbc:postgresql:localhost:26257/mydb?sslmode=disable
username: myuser
password:
jpa:
properties:
hibernate.dialect: org.hibernate.dialect.PostgreSQL94Dialect
show-sql: true
database-platform: org.hibernate.dialect.PostgreSQL94Dialect
hibernate:
ddl-auto: create
pom.xml 部分:
[...]
<dependencies>
<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.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
</dependencies>
[...]
我创建了两个用户。一个没有密码,一个有密码,在 cockroachDB 上的数据库 "mydb" 中。两者都不起作用。将“?sslmode=disable”附加到 spring.datasource.url 中的 url 也不起作用。
没有密码的异常:
org.postgresql.util.PSQLException: The server requested password-based authentication, but no password was provided.
密码异常:
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"
感谢您的帮助
您必须在数据源 url 中的 postgresql 之后使用 ://
。
您的数据源 url 应该是
jdbc:postgresql://localhost:26257/mydb?sslmode=disable