【解决报错】failed to obtain JDBC Connection

待我称王封你为后i 2023-09-29 12:00 171阅读 0赞

目录

  • 一.问题
  • 二.报错类型
    • 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版本不是最新的就会版本不一致,然后报错。如果你写了版本号还报错,那就是版本号不一致。

  1. <!--MySql 依赖 -->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. </dependency>

查看自己本地MySql版本

打开任务管理器 -> 详细信息 -> mysqld.exe -> 属性 -> 查看版本号

在这里插入图片描述

查看项目导入的MySql依赖

maven -> Dependencies -> 找到依赖

在这里插入图片描述

由上面看出你的依赖版本和我的本地版本不一致,所以会报错

2.解决CLIENT PLUGIN AUTH is required

(1).pom数据库依赖MySql添加适用的版本号

  1. <!-- MySql 依赖 -->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <version>5.1.30</version>
  6. </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文件

  1. <!-- MySql 依赖 -->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <version>6.0.6</version>
  6. </dependency>

yml文件

在这里插入图片描述

原因com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别和时区serverTimeZone的问题

4.解决版本和驱动不一致错误和时区serverTimeZone配置问题

(1).可以将你pom中的数据库依赖降低到MySql 5及以下

(2).pom中数据库依旧不变还是MySql 6及以上,修改yml文件,如下

在这里插入图片描述

  1. datasource:
  2. url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
  3. username: root
  4. password: pansh@123
  5. driver-class-name: com.mysql.cj.jdbc.Driver # MySql 6及以上数据驱动

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读