报错:
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.
分析:
其实报错的提示信息很清楚:
服务器时区价值”Oйu±e×¼e±¼的识别或代表多个时区。如果您想利用时区支持,您必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)来使用更具体的时区值。
这是由于数据库和系统时区差异所造成的,因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式
解决:
- 方法一:在连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。
- 示例:
java jdbc:mysql://localhost:3306/springbootdemo?serverTimezone=GMT%2B8
- 方法二:直接修改MySQL配置文件来修改MySQL的时区
打开MySQL的安装目录(笔者是:C:\ProgramData\MySQL\MySQL Server 8.0),找到MySQL配置文件my.ini,用任意文本编辑器打开,在 [mysqld] 这个节点下增加default-time_zone = '+8:00'
添加默认时区
- 然后记得重启MySQL的服务,打开cmd窗口登录MySQL执行
show variables like '%time_zone%';
这句命令
-- 以管理员方式运行cmd窗口 net start mysql80-- 打开数据库 net stop mysql80-- 关闭数据库 mysql -u 用户名 -p --连接数据库,回车输入密码 show variables like '%time_zone%';-- 查看MySQL的时区