IDE连接MySQL报错:Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ property

    科技2024-05-21  83

    IDE连接MySQL报错:

    Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    意思就是:服务器返回无效时区。转到“高级”选项卡并手动设置“serverTimezone”属性。

    百度之后找到问题的答案,自己尝试解决,发现个别地方有坑,谨记于此。

    本人MySQL版本:

    mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.21    | +-----------+

    这个问题的原因是MySQL的时区属性属于SYSTEM的,我们连接IDE时需要设置指定某一个时区。下面我们设置MySQL的时区,按照步骤操作如下:

    1.配置mysql环境变量

    通过mysql命令行工具,或者配置好mysql的系统变量path后即可使用命令查看时区的属性。配置方法就是在系统变量中点击path添加mysql的安装路径,比如我的:C:\Program Files\MySQL\MySQL Server 8.0\bin。

    切记:不要配置成用户变量中path的mysql路径,一定是安装路径,即MySQL Server这个目录下的。这个容易被坑。

    2.连接mysql

    配置好之后打开cmd,输入:

    mysql -hlocalhost -uroot -p // 或者 mysql -uroot -p

    切记:-h和localhost之间没有空格,-u和root之间也没有空格,-p之后米有分号。

    如果输入正确会提示输入密码,结果如下:

     

    3.查看时区属性:

    show variables like'%time_zone';

    切记:like和后面的单引号不能有空格,是相连的,结尾有分号。单引号换做双引号也可以,模糊匹配最后也可以加一个百分号,效果都一样。下图是显示结果:

    system_time_zone和time_zone都是SYSTEM,下面我们要设置指定的东八区时区。

    4.设置时区

    set global time_zone = '+8:00';

    不少文章写到这里就结束了,直接会显示时区变成了东八区,而实际上却不是这个样子的,也可能是mysql版本的区别。我在第四步操作完,只是有如下提示:

    切记:结尾有分号。

    5.刷新权限

    第四步结束之后还需要刷新权限:

    flush privileges;

    至此,基本完成。可以查看时区(第三步)看一下结果,如果出现如下结果:

    则证明设置成功,如果还是显示SYSTEM,那么关闭命令行窗口,重启,再查看就ok了。

    这个时候去IDE重新连接mysql就ok了。

     

    Processed: 0.013, SQL: 8