springboot 连接数据库之时区设置

抽空查看以前的开发日志,发现了一些“问题”日志,决定整理后陆陆续续发出来吧,也为有需要的话小伙伴提供点帮助。

在springboot启动之时,报错了,一看应该就是连接MySql数据库时出的问题。

create connection SQLException, url: jdbc:mysql://localhost:3306/mp_student?useUnicode=true&characterEncoding=UTF-8, errorCode 0, state 01S00

java.sql.SQLException: 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.

控制台洋洋洒洒几百个错误刷屏,内心居然能够波澜不惊,看来已经是见过世面的人了(另类老司机?)。

简单翻译一下,就是服务器时区跟数据库所用时区不一样,需要在服务器端或者JDBC驱动配置里面指定一个,否则就不给你用。

好吧,我投降,因为我不能不用呀。总不能改电脑的时区吧,那就怎么简单怎么来吧,在 JDBC URL 后面加个参数。

?serverTimezone=UTC

如果你有多个参数,像我一样,就

&serverTimezone=UTC

完整路径如下:

jdbc:mysql://localhost:3306/mp_student?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

其实,也可以设置为我们所在的东八区,毕竟只要设置了就行,当然,你生产环境还是得设置你所在地区的时区,或者业务要求的时区

jdbc:mysql://localhost:3306/mp_student?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8

简单解释一下

UTC: Coordinated Universal Time, 国际协调时间,也称世界标准时间。

GMT:Greenwich Mean Time, 格林尼治时间

东八区:GMT+8

一般都认为UTC & GMT 基本无差。

实际上,尽管都是一样代表当前时间,但GMT代表的是时区, UTC 则是一个时间标准,两者都不在一个维度,无法比较。

想要详细了解的童鞋,可参考以下文章

https://www.timeanddate.com/time/gmt-utc-time.html

你可能感兴趣的:(springboot 连接数据库之时区设置)