数据库连接时出现The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized问题

报错:

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格式

解决:

  1. 方法一:在连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。
  • 示例:
    java jdbc:mysql://localhost:3306/springbootdemo?serverTimezone=GMT%2B8
  1. 方法二:直接修改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的时区
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章