春季启动:MySQLNonTransientConnectionException:无法创建连接

时间:2018-07-09 10:30:00

标签: java mysql spring spring-boot

我正在尝试将Spring Boot应用程序与MySQL服务器连接。

我已经正确地遵循了文档,但是在连接方面还是遇到了一些问题 每次都会抛出以下异常

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

2 个答案:

答案 0 :(得分:1)

首先重新启动MySQL服务器,然后重试... 如果不是...

您是否添加了application.properties详细信息以及JPA,MySQL依赖项? 请显示pom.xml文件和application.properties文件。

appication.properties

spring.mvc.view.prefix=/WEB-INF/JSP/ #jsp file path
spring.mvc.view.suffix=.jsp

#Hibernate
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.generate-ddl=true

#JPA
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

pom.xml

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <scope>runtime</scope>
</dependency>
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

谢谢...!

答案 1 :(得分:0)

为了解决这个错误,我必须使用MySql Workbench使用存储在application.properties文件中的用户名和密码登录MySql。这样做之后,错误将不再发生。仅在重新启动MySql服务器后尝试运行spring boot项目时才会发生这种情况。

更新:在application.properties文件的spring.datasource.url中添加“&allowPublicKeyRetrieval = true”解决了该问题。在日志中发现另一个错误后,我想出了这一点:“不允许MySQL公用密钥检索”

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