java - 计算机重新启动后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.
解决方案
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
这是一个时区问题,隐藏在我遇到的错误的堆栈跟踪中。将我的应用程序属性更改为此修复它。
推荐阅读
- javascript - 普通 javascript 项目的 webpack 和 babel 配置失败
- android - 对 web 和 android 应用程序呈现不同的响应
- angular - 升级 ag-grid 角度版本
- bash - 防止使用 GitHub 时将大文本文件添加到提交
- c++ - 可以像在其他编译器中的 Microsoft C 中那样使用类型化或类型名声明构造函数吗?
- java - Android Intent 地图数据被覆盖
- airflow - Apache - Airflow 1.10.1 不开始工作
- java - Pyspark:python 工作者无法连接回来/socketTimeOut
- reactjs - 我可以在组件中访问的道具无法呈现
- php - PHP - 如何在导入期间在自定义字段中设置日期和时间戳