新的MySQL驱动程序导致java.sql.SQLNonTransientConnectionException:需要客户端\插件\身份验证
如果将MySQL JDBC驱动程序从新的MySQL驱动程序导致java.sql.SQLNonTransientConnectionException:需要客户端\插件\身份验证,java,mysql,ssl,jdbc,Java,Mysql,Ssl,Jdbc,如果将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连接 选项未设置。以符合不使用 S
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并为服务器证书提供信任库
核实
这听起来像是一种倒退。切换到6.0.2有什么特别的原因吗?如果没有,我会回到5.1.38,在三个月后给6.x一次机会,让MySQL的人稳定驱动程序 我也有同样的问题,我通过将父标记版本从2.1.1.RELEASE更改为2.0.0.RELEASE来解决 从
org.springframework.boot
spring启动程序父级
2.1.1.1发布
到
org.springframework.boot
spring启动程序父级
2.0.0.1版本
我通过删除pom中的mysql版本来解决这个问题
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
mysql
mysql连接器java
新版本的mysql连接器(从6开始)似乎与旧版本的DBMS mysql(低于5.6)不兼容。因此,为了解决您的问题,如果您更新了mysql连接器,请尝试对DBMS进行同样的。
实际上,我在mysql connector 8.0.13和DBMS msql 5.1中也遇到了同样的问题。。。。我通过将DBMS移到5.6.17解决了这个问题,这可能是因为mysql版本太旧,所以在这种情况下需要做3个更改: 在application.properties中,执行前2项更改:
spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.mysql5dialogue
spring.datasource.driver类名=com.mysql.jdbc.driver
使用Maven depandency
###pom.xml
mysql
mysql连接器java
5.1.37
##应用程序属性
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类名=com.mysql.jdbc.driver
spring.datasource.platform=mysql
#spring.jpa.hibernate.ddl auto=createdrop
spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.mysql5innodbdialogue
spring.jpa.hibernate.ddl auto=update
#spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.mysql5innodbdialogue
这为我解决了这个问题。原因是驱动程序的版本与安装的MySQL版本不兼容。如果使用springboot,可能需要将mysql驱动程序的版本更改为可与mysql DBMS进行比较的版本。请检查@P Satish Patro对此帖子的回答
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
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