Datagrip连接数据库,报错:Server returns invalid timezone. Need to set ‘serverTimezone‘ property

导读

        最近被同事案例了一款数据库客户端工具:DataGrip,大爱!

        DataGrip 是由 JetBrains 公司(就是那个出品 Intellij IDEA 的公司)推出的数据库管理软件,是一款收费软软件。我们常用的编译工具:IDEA,PyCharm... 都属于 JetBrains 全家桶的一部分,相信如此权威的企业开发的DB工具肯定差不了。

        DataGrip 支持几乎所有主流的关系数据库产品,如:DB2、Derby、H2、MySQL、Oracle、PostgreSQL、SQL Server、Sqllite 及 Sybase 等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。


正文

一、异常描述

  • 【Data Source】新建 Mysql 连接,“Test Connection”测试时候提示异常:

Server returns invalid timezone. Need to set ‘serverTimezone‘ property

二、原因分析

        出现这种情况,是因为安装MySQL的时候没有配置时区造成的。

        MySQL驱动的jar包中的默认时区是UTC,UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时,这显然是不匹配的。因为时区的不一致,返回了无效的时区,才导致了上述的问题。

        所以,我们解决问题的原理,就是:为数据库指定当前时区

三、解决办法

方法1:在URL上添加时区

  • 直接在 URL 后面添加 “?serverTimezone=GMT%2B8” ,然后再点击 “Test connection” 进行连接测试,会发现成功连接上数据库。

方法2:在config中配置时区

  • 点击 【Set time zone】,跳转到 【高级】标签中手动设置【serverTimezon】属性值。

  •  将【serverTimezon】默认属性 “UTC” 修改为 “GMT”,记得点击 “Apply” 才能生效;

方法3:在根源(数据库)配置时区

  • 进入 Mysql 安装目录下的 /bin 文件夹,连接数据库:

mysql -u root -p

  • 查看当前的系统时区,显示为 SYSTEM ,表示没有设置时区;

show variables like '%time_zone';

  • 命令设置时区为”+8:00“(北京);

set time_zone = '+8:00';

  • 查看以确保设置成功,重新使用 DataGrip 连接,以后都不会再提示时区错误。


猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/127924202
今日推荐