现象:
使用Intelij DataGrip连接MySql时,遇到如下错误信息:
java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeException: 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.
问题原因:
数据库和系统时区有差异
mysql> show variables like “%time_zone%”;
+——————+——–+
| Variable_name | Value |
+——————+——–+
| system_time_zone | |
| time_zone | SYSTEM |
+——————+——–+
2 rows in set, 1 warning (0.00 sec)
解决办法 1:
在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,5.1.28不会存在时区的问题。
例如:
url=jdbc:mysql://localhost:3306/dataBaseA
改为
url=jdbc:mysql://localhost:3306/dataBaseA?serverTimezone=GMT%2B8
——————————-
解决办法 2:
set global time_zone = ‘+8:00’; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = ‘+8:00’; ##修改当前会话时区
flush privileges; #立即生效
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/10274.html