我正在尝试将Spring Boot应用程序与MySQL服务器连接。
我已经正确地遵循了文档,但是在连接方面还是遇到了一些问题 每次都会抛出以下异常
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
答案 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