【解决报错】failed to obtain JDBC Connection
目录
- 一.问题
- 二.报错类型
- 1.CLIENT PLUGIN AUTH is required
- 2.解决CLIENT PLUGIN AUTH is required
- (1).pom数据库依赖MySql添加适用的版本号
- (2).把自己本地MySql更新到最新
- 3.版本和驱动不一致错误和时区serverTimeZone配置问题
- 4.解决版本和驱动不一致错误和时区serverTimeZone配置问题
- (1).可以将你pom中的数据库依赖降低到MySql 5及以下
- (2).pom中数据库依旧不变还是MySql 6及以上,修改yml文件,如下
一.问题
org.springframework.jdbc.CannotGetJdbcConnectionException:failed to
obtain JDBC Connection(未能获取JDBC连接):关于这个错误有几个具体报错信息
二.报错类型
1.CLIENT PLUGIN AUTH is required
这是因为pom依赖中导入的mysql版本和所连接的mysql版本不一致导致的
pom文件
如果你的pom文件数据库依赖没写版本号,那样会默认给你引入最新的MySql版本,如果你本地安装的MySql版本不是最新的就会版本不一致,然后报错。如果你写了版本号还报错,那就是版本号不一致。
<!--MySql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
查看自己本地MySql版本
打开任务管理器 -> 详细信息 -> mysqld.exe -> 属性 -> 查看版本号
查看项目导入的MySql依赖
maven -> Dependencies -> 找到依赖
由上面看出你的依赖版本和我的本地版本不一致,所以会报错
2.解决CLIENT PLUGIN AUTH is required
(1).pom数据库依赖MySql添加适用的版本号
<!-- MySql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
(2).把自己本地MySql更新到最新
MySql官网
3.版本和驱动不一致错误和时区serverTimeZone配置问题
Loading class ‘com.mysql.jdbc.Driver’. This is deprecated. The new driver class is’com.mysql.cj.jdbc.Driver’(版本和驱动不一致错误)
The server time zone valueis unrecognized or represents more than one time zone(serverTimeZone配置问题)
pom文件
<!-- MySql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
yml文件
原因com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别和时区serverTimeZone的问题
4.解决版本和驱动不一致错误和时区serverTimeZone配置问题
(1).可以将你pom中的数据库依赖降低到MySql 5及以下
(2).pom中数据库依旧不变还是MySql 6及以上,修改yml文件,如下
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: pansh@123
driver-class-name: com.mysql.cj.jdbc.Driver # MySql 6及以上数据驱动
还没有评论,来说两句吧...