【MySQL】MySQL 8.0版本数据库驱动和时区配置问题
项目场景:
本地Windows10开发环境,下载安装MySQL 8.0版本数据库
下载版本为:mysql-8.0.12
问题描述
换了一家新公司,重新搭建开发环境,下载安装了最新版的MySQL 8.0.12版本,在启动旧的项目时出现报错,报错信息如下:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
原因分析:
一开始以为是数据库服务没打开,查看Windows服务信息,发现MySQL服务正在运行,使用Navicat测试连接也是成功的。
然后在网上搜索问题,发现问题出在MySQL版本和数据库驱动包不兼容。MySQL 8.0及以后的版本的数据库驱动名称改为了 com.mysql.cj.jdbc.Driver,而我之前的项目使用的是MySQL 5.7的版本,项目中配置的驱动信息依旧是旧版本的 com.mysql.jdbc.Driver。
解决方案:
1、修改项目中的数据库连接配置信息,将数据库驱动名称改为 com.mysql.cj.jdbc.Driver 2、修改pom文件,mysql驱动依赖中加上相应的版本号
重新启动项目,没有报MySQL版本和数据库驱动包不兼容的错误,但是又出现了另一个问题。
问题描述
新的报错信息如下:
Caused by: com.mysql.cj.exceptions.WrongArgumentException: The connection property zeroDateTimeBehavior acceptable values are: CONVERT_TO_NULL, EXCEPTION or ROUND. The value convertToNull is not acceptable.
原因分析:
网上搜索问题,发现是由于数据库和系统时区差异所造成的。
解决方案:
修改项目中的数据库连接配置信息,将 spring.datasource.url的配置修改如下, 将zeroDateTimeBehavior=convertToNull改zeroDateTimeBehavior=CONVERT_TO_NULL,并在后面加上&serverTimezone=GMT%2B8
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
在Windows中,开机自启动