Spring boot连接mysql时,The server time zone value 'EDT' is unrecognized 异常

在Spring Boot应用连接MySQL数据库时遇到'The server time zone value 'EDT' is unrecognized'异常。问题源于应用与数据库时区不一致。通过在数据库URL中添加`serverTimezone=GMT`可解决,但当应用和数据库在同一服务器上,时区匹配,问题变得复杂。通过检查服务器时区(EDT)和数据库支持的时区(如通过`ll /usr/share/zoneinfo`),发现EDT不在支持列表中。使用数据库支持的时区(如GMT、UCT)作为`serverTimezone`即可避免异常。了解时区处理,可参考廖雪峰的博客关于时间处理的文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题解决方案

Spring boot 连接mysql数据库时,在部分环境中会出现The server time zone value 'EDT' is unrecognized异常。

com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

查找资料发现这个由于应用所在时区与数据库所在时区不一致导致。原数据库连接设置如下。

jdbc:mysql://ip:port/database_name?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

为了解决这个问题,按照网上资料,在url中添加serverTimezone=GMT

jdbc:mysql://ip:port/database_name?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=GMT

问题解决,应用启动正常。

但是,为了节约资源,进行测试,应用和数据库部署在同一台机器上,所以,不存在数据库和应用所在服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值