The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than one time zone.怎么解决

文章讨论了运行程序时遇到的MySQL时区错误,分析了错误产生的两个原因:Idea的时区与MySQL不一致以及MySQL依赖版本更换。提供了两种解决方案:一是调整Idea的时区设置,添加系统参数;二是修改MySQL的JDBC连接字符串,指定服务器时区。同时提醒注意URL编码在设置时区时的作用。

问题原因:

运行问题展示:

运行程序的时候,报了如图的错误
在这里插入图片描述


问题分析:

运行问题解释:

这个错误是由于 MySQL 数据库的时区设置不正确引起的。MySQL数据库默认使用系统的时区设置,如果系统的时区设置不正确,就会导致这个错误出现。我愿称之为“时区问题”
错误原因一:

idea默认的时区和mysql8默认的时区不一样

错误原因二:

在中途更换过mysql的依赖版本

解决方案:

如何解决“时区问题”:

方法一: 将 Idea 的时区设置为与 MySQL 8 相同的时区,可以像下面这样进行设置:
请添加图片描述
请添加图片描述
1、在 Idea 的菜单栏中选择 “Edit Configurations”。
2、在弹出的窗口中,找到您要运行的应用程序配置,并单击它。
3、在右侧的窗格中,找到 “VM options” 字段,并添加以下两个系统参数:

-Duser.timezone=UTC
-Duser.country=US

其中,-Duser.timezone=UTC 指定了时区为 UTC,-Duser.country=US 则指定国家/地区为美国,这些设置将覆盖本地系统的默认设置。

方法二: 将 MySQL 8 的时区设置为与 Idea 相同的时区,可以在连接 MySQL 数据库时,在 JDBC 连接字符串中添加 serverTimezone 参数,如下所示:

<property name="url" value="jdbc:mysql:///dy?useSSL=false&amp;useServerPrepStmts=true"/>

解释:

  • jdbc:mysql:///: 定义使用 MySQL 数据库的 JDBC 驱动程序。
  • news?: 要连接的数据库名称为 “news”。
  • serverTimezone=GMT%2B8: 指定 MySQL 数据库的时区为东八区(北京时间),注意 %2B 表示 URL 编码中的 “+” 符号。
  • useSSL=false: 禁用 SSL 安全协议。
  • allowPublicKeyRetrieval=true: 允许使用公钥方式进行身份验证。

!!!注意: serverTimezone=GMT%2B8 表示将 MySQL 数据库的时区设置为东八区(北京时间)。在 JDBC 连接字符串中,使用 %2B 来代替 + 符号,是因为 + 在 URL 中需要进行 URL 编码。如果自己的应用程序运行在东八区,并且希望与 MySQL 数据库共享相同的时区设置,则可以在 JDBC 连接字符串中添加 serverTimezone=GMT%2B8 属性来指定时区。当然,你也可以根据需要将其替换为其他有效的时区设置,例如 serverTimezone=UTC 表示使用协调世界时(UTC)时区。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值