一. 异常现象/信息
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及以上后,添加了许多新特性,安全性也得到提升。当然操作时也相对繁琐了些,时区问题也需要注意了。
三、解决方案
- 配置数据库连接时,jdbcUrl 加上 serverTimezone=UTC
url: jdbc:mysql://localhost/xdata?characterEncoding=utf-8&serverTimezone=UTC
- 设置服务器时区
2.1 查询服务器时区
可见服务器默认时区跟随系统时区show variables like 'time_zone';
2.2修改mysql时区
//修改mysql全局时区为东八区,即北京时间
set global time_zone='+8:00';
flush privileges;