我无法使用 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 容器
Docker 上的 Spring Boot 无法连接到 MySQL
无法将 Spring Boot 应用程序连接到 IBM Informix 数据库