esaycode插件生成代码时连接数据库失败

在升级到MySQL8.0后,遇到数据库连接异常和时区识别错误的问题。当尝试TestConnection时,未显示成功连接信息,并报出InvalidConnectionAttributeException,原因是服务器时区值不被识别。解决方法是在数据库连接URL中添加'serverTimezone=UTC'参数,或者在服务器端修改全局时区为'+8:00'。确保配置正确以避免时区相关的问题。
摘要由CSDN通过智能技术生成

一. 异常现象/信息

1、数据库信息正确输入后,点击Test Connection后没有出现成功连接的信息。
在这里插入图片描述
2、使用sql语句查询爆出异常

Caused by: 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的无效连接属性异常:服务器时区值无法辨认或表示多个时区,如果你想使用时区支持,你必须通过服务器时区配置属性来配置服务器或JDBC驱动从而使用更具体的时区值。

二、异常原因

mysql升级到8.0及以上后,添加了许多新特性,安全性也得到提升。当然操作时也相对繁琐了些,时区问题也需要注意了。

三、解决方案

  1. 配置数据库连接时,jdbcUrl 加上 serverTimezone=UTC
    url: jdbc:mysql://localhost/xdata?characterEncoding=utf-8&serverTimezone=UTC
    
  2. 设置服务器时区
    2.1 查询服务器时区
    show variables like 'time_zone';
    
    可见服务器默认时区跟随系统时区

在这里插入图片描述
2.2修改mysql时区

//修改mysql全局时区为东八区,即北京时间
set global time_zone='+8:00'; 
flush privileges;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值