You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot连接MySQL出现时区不识别错误,求解决办法

解决Spring Boot连接MySQL时的时区异常问题

这个问题我之前也碰到过,本质是MySQL 8.x版本的JDBC驱动对时区配置的校验变得更严格了,你看到的两个异常其实是连锁反应:时区识别失败导致数据库连接建立不起来,进而引发了entityManagerFactory这个Bean的创建失败。

下面是两种直接有效的解决办法:

方法一:在JDBC URL中明确指定时区

直接修改你application.properties里的数据源URL,加上serverTimezone参数,指定一个具体的时区值就行。比如针对你提到的中欧时间,可以用:

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Europe/Berlin

如果不想指定具体时区,也可以用UTC(通用协调时间):

spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC

注意:用UTC的话,要确保你的业务逻辑中处理时间的时候做好时区转换,避免出现时间偏差。

方法二:修改MySQL服务器的全局时区配置

如果你希望所有连接都统一使用指定时区,可以修改MySQL的配置文件:

  • Linux系统:找到my.cnf(通常在/etc/mysql/目录下)
  • Windows系统:找到my.ini(通常在MySQL安装目录的my文件夹下)

在配置文件的[mysqld]区块下添加:

default-time-zone = '+01:00'

(+01:00对应中欧时间,你也可以换成其他时区偏移量或者时区标识符)

添加后重启MySQL服务,这样Spring Boot应用就能正常识别服务器时区了。

只要解决了时区识别的问题,后面的BeanCreationException也会自动消失——因为数据库连接能正常建立,Hibernate的相关Bean就能顺利初始化了。

内容的提问来源于stack exchange,提问作者Simulant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:28:30