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服务(进程))

你可能感兴趣的:(开发环境)