如果将MySQL JDBC驱动程序从5.1.38
更改为6.0.2
,我会收到以下异常
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
此异常发生在正常的JDBC启动中。
可能这与SSL有关,因为我也收到以下消息
在没有服务器身份验证的情况下建立SSL连接 不建议。根据MySQL 5.5.45 +,5.6.26 +和5.7.6+ 要求如果显式,则必须默认建立SSL连接 选项未设置。符合不使用的现有应用程序 SSL将verifyServerCertificate属性设置为“false”。你需要 通过设置useSSL = false或设置来显式禁用SSL useSSL = true并为服务器证书提供信任库 验证
以前版本中没有。
答案 0 :(得分:9)
这听起来像是回归。是否有特殊原因要切换到6.0.2?如果没有,我将恢复到5.1.38并在三个月之后给6.x一次让MySQL的人们稳定驱动程序。
答案 1 :(得分:2)
Use Maven depandency
###pom.xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
##application.properties
server.port=9092
jwt.secret=javainuse
spring.datasource.url=jdbc:mysql://localhost:3306/hospital
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.platform=mysql
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto= update
#spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
答案 2 :(得分:1)
我遇到了同样的问题,我通过将父标记版本从2.1.1.RELEASE更改为2.0.0.RELEASE来解决了
来自
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
到
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
答案 3 :(得分:1)
mysql连接器 (从6开始)的新版本似乎与 DBMS mysql 的旧版本不兼容(低于5.6) 。因此,为了解决您的问题,如果您更新了 mysql连接器,请尝试对DBMS进行相同的操作。 实际上,我使用 mysql连接器8.0.13 和 DBMS msql 5.1 .... 拥有相同的issu,我通过将 DBMS移至5.6.17 < / em>
答案 4 :(得分:1)
可能是由于mysql版本太旧,所以在这种情况下需要进行3处更改: 在application.properties中进行前两项更改:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
根据mysql-connector-java的替换范围标记对pom.xml文件进行更改,将scope标记替换为version标记,并在version中编写您的mysql版本,如5.1
答案 5 :(得分:0)
我通过删除pom中的mysql版本来解决此问题。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>