我无法使用 springboot 连接到我的 mysql 数据库我使用相同的密码和名称与 phpmyadmin 连接得很好

Posted

技术标签:

【中文标题】我无法使用 springboot 连接到我的 mysql 数据库我使用相同的密码和名称与 phpmyadmin 连接得很好【英文标题】:Im not able to connect to my mysql database with springboot i connect just fine with phpmyadmin using the same password and name 【发布时间】:2021-03-16 20:06:30 【问题描述】:

所以正如标题所说,我无法通过 spring-boot 连接到我的数据库,数据库似乎在 phpMyAdmin 和 PHPMyAdmin 的工作台中工作正常,我检查了用户设置,并且用户 root 已启用所有权限我是猜测它与 mysql 的关系我正在使用 MySQL 8。这是一个学校项目,所以我不确定问题出在哪里,任何帮助将不胜感激

错误日志

  java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.22.jar:8.0.22]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.22.jar:8.0.22]
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.22.jar:8.0.22]
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.22.jar:8.0.22]
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.22.jar:8.0.22]

应用程序属性

    spring.datasource.url= jdbc:mysql://localhost:3306/cardb
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
    spring.datasource.data-username=root
    spring.datasource.data-password=09130425
    spring.jpa.hibernate.ddl-auto=update

pom xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

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

    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>       
            <scope>runtime</scope>
            </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

【问题讨论】:

【参考方案1】:

尝试使用 ssl 访问本地 mysql 数据库

spring.datasource.url= jdbc:mysql://localhost:3306/cardb?autoReconnect=true&useSSL=false

【讨论】:

无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃。 与之前一样,只是添加了这一行 我也尝试从 MySQL 工作台关闭 SSL,但它仍然没有改变任何东西【参考方案2】:
spring.datasource.url= jdbc:mysql://localhost:3306/cardb
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.datasource.data.username=root
spring.datasource.data.password=09130425
spring.jpa.hibernate.ddl-auto=update

【讨论】:

【参考方案3】:

尝试更新您的 application.properties 文件

spring.datasource.url=jdbc:mysql://localhost:3306/cardb  
spring.datasource.data.username=root
spring.datasource.dat.password=09130425
spring.jpa.hibernate.ddl-auto=update

【讨论】:

由于某种原因使用这个,它成功了 spring.datasource.url=jdbc:mysql://localhost:3306/cardb?user=root&password=09130425&serverTimezone=UTC 您的 application.properties 配置文件包含一些问题 @MokraneBahmed,而不是发布多个答案,请提供一个包含必要细节的答案。

以上是关于我无法使用 springboot 连接到我的 mysql 数据库我使用相同的密码和名称与 phpmyadmin 连接得很好的主要内容,如果未能解决你的问题,请参考以下文章

Docker:Springboot 容器无法连接到 PostgreSql 容器

使用 PyMySQL,我无法连接到 RDS

Docker 上的 Spring Boot 无法连接到 MySQL

无法将 Spring Boot 应用程序连接到 IBM Informix 数据库

在 AWS Beanstalk 上部署 SpringBoot - 应用程序启动,连接到 RDS-DB,但浏览器无法连接

Springboot 应用程序无法使用 docker-compose 连接到 MongoDB 容器