如何解决 CockroachDB 和 Spring-Boot 的密码问题

Posted

技术标签:

【中文标题】如何解决 CockroachDB 和 Spring-Boot 的密码问题【英文标题】:How to fix password problem with CockroachDB and Spring-Boot 【发布时间】:2020-01-06 08:33:03 【问题描述】:

我对 spring-boot 和 cockroachDB 有疑问。在我的本地机器上运行 cockraochDB 和 spring-boot。一旦 spring boot 开始,我就会遇到异常。 Cockroach 以不安全模式运行。

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 :- jdbc:postgresql://localhost:26257/mydb?sslmode=disable 哈哈感谢@GovindParasha。我是盲人;)它完美无缺:) 那太好了,我会作为答案发布 【参考方案1】:

您必须在数据源 URL 中的 postgressql 之后使用://

你的数据源网址应该是

jdbc:postgresql://localhost:26257/mydb?sslmode=disable

【讨论】:

以上是关于如何解决 CockroachDB 和 Spring-Boot 的密码问题的主要内容,如果未能解决你的问题,请参考以下文章

如何加快 CockroachDB 中的插入性能

如何更改 CockroachDB 的默认数据库?

如何在 Docker 容器内的 CockroachDB 中运行 SQL 脚本?

从 CockroachDB 中的“SELECT”返回随机行

使用 CockroachDB 返回最后插入的 ID/SERIAL 值

CockroachDB 中的自动增量支持