MySQL server time zone 报错 (MySQL时区问题)

The server time zone value 'Öйú±ê׼ʱ¼ä' 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.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_181]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_181]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_181]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_181]

解决的方法异常信息里已经给出:  配置server或者JDBC驱动来指定时区

  • 配置JDBC驱动指定时区

jdbc:mysql://127.0.0.1:3306/local?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8

实际是把GMT+8(北京时间)作为参数传递, 也可以传入Linux中的timezone (Asia/Shanghai)...

 

  • 修改MySQL的时区

--查看当前server时区
SHOW VARIABLES LIKE '%time_zone%';

--设置全局时区为北京时间
SET GLOBAL time_zone='+8:00';

--设置当前session时区为北京时间
SET time_zone='+8:00';
  • 修改mysql的配置文件

Windows -- my.ini

Linux -- my.cnf

在配置文件中加上

default-time_zone = '+8:00'

(注意:修改配置文件不是立即生效, 添加参数后需要重启mysql服务(进程))

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值