网络上给的解决办法: 这是数据库服务器时区的问题,即连接参数 serverTimezone 的问题,默认情况下 serverTimezone=UTC,改成 HongKong 或者 Asia/Shanghai 就可以了。如下所示:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
简单点:
jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai
我试过无效,而是直接修改 MySQL 的时区才有效,解决步骤如下:
首先找到 MySQL 的配置文件 my.cnf,我的电脑是 macOS,方法参见《macOS如何查找MySQL的配置文件my.cnf》
接着在配置文件中写入 default-time_zone = '+8:00'
,如下所示:
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
default-time_zone = '+8:00'
保存后退出,再重启 MySQL,使配置生效。