有人说这是在使用MySQL 8.0以上版本(MySQL连接驱动和版本都是8.0以上)的时候出现的错误;
但是我mysql使用的5.7版本,连接驱动使用的是8.0.13版本;
原因是mysql安装的时候默认的时区不是东八区。我们需要手动修改为东八区。
解决办法有三种:
第一种:试过有效,但这种修改只是临时的,重启服务器后问题仍在。
用root用户登录MySQL,查询默认时区,如果是下面这种情况,那就是MySQL系统默认时区,不是东八区。
输入命令: set global time_zone='+8:00';
执行完成之后再次查询,如下图,即为成功
第二种:我试过最简单好用的方法;
在url参数后面加上 serverTimezone=GMT%2B8 参数,如下:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jt_db?serverTimezone=GMT%2B8", "用户", "密码");
GMT值0时区的时间,%2B 是html中的 "+" 号的编码。这样也可以设置时区为东八区。
第三种:试过无效的方法
修改mysql的配置文件my.ini。
有时候很难找到,可以设置C盘文件隐藏项目可见,然后在C盘地址栏输入%programdata%进入programdata,从而进入programdata/mysql/mysql server 5.7找到my.ini并打开,搜索“mysqld”,在“mysql”节点下加上这一行
default-time-zone='+08:00'
重启mysql服务,登录mysql,查看时区值,时区值显示为+8:00,说明设置好了。
net stop mysql
net start mysql
mysql -hlocalhost -P13306(我的端口号) -uroot -p //登录mysql
show variables like'%time_zone'; //查看mysql中设置的时区值
好了,
结束。