首页 > 解决方案 > 计算机重新启动后Spring无法连接到mysql数据库如何诊断问题所在

问题描述

我正在使用 spring 连接到同一台机器上的 mysql 数据库,并从 api 中提取数据并存储它。昨天它还在工作,我决定让它继续运行,看看我是否遇到任何问题。据我所知,它工作得很好,但我忘了插上笔记本电脑,它就死了。重新启动机器后,我可以通过命令行连接到数据库,但我的应用程序无法使用相同的用户 ID 和密码连接。

我已经尝试按照 spring.io 指南再次连接到 mysql,并且我尝试弄乱我的应用程序属性以使用 127.0.0.1

我还验证了凭据在命令行上是否有效,并允许我连接到我的 mysql 数据库

应用程序属性

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/POE?autoReconnect=true&useSSL=false
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.profiles.default=production
spring.profiles.active=production

pom.xml - mysql 连接器...

<!-- Use MySQL Connector-J -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.3</version>
</dependency>

...

我可以展示更多实际的代码,但它主要是从 spring.io 指南和我自己的实体中提取的。但如果我没有建立联系,我认为这不是问题

它运行良好,只是记录了我对数据库所做的所有写入,但现在我收到了这个错误

2019-07-09 14:57:45.839 ERROR 2654 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

标签: javamysqlspring-boot

解决方案


spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/POE?autoReconnect=true&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=user
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.profiles.default=production
spring.profiles.active=production

这是一个时区问题,隐藏在我遇到的错误的堆栈跟踪中。将我的应用程序属性更改为此修复它。


推荐阅读