[SPRING] MySQLNonTransientConnectionException : 클라이언트가 서버가 요청한 인증 프로토콜을 지원하지 않습니다. MySQL 클라이언트 업그레이드 고려
SPRINGMySQLNonTransientConnectionException : 클라이언트가 서버가 요청한 인증 프로토콜을 지원하지 않습니다. MySQL 클라이언트 업그레이드 고려
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3996)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:154)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:145)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:205)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:169)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:43)
mysql 암호를 업데이트 한 후에도이 오류가 발생합니다. mysql에 새로운 캐싱 메커니즘이 있고 모든 클라이언트가 이미 다음과 같은 오류를 실행해야한다는 게시물을 읽었지만 여전히 같은 오류가 있습니다.
update user set authentication_string='test' where user='root';
flush privileges
해결법
-
==============================
1.1 단계 : 사용하여 현재 MySQL 버전을 확인하십시오 : SELECT version (); 질문.
1 단계 : 사용하여 현재 MySQL 버전을 확인하십시오 : SELECT version (); 질문.
2 단계 : Mysql jar 또는 Mysql 종속성의 버전을 확인하십시오.
step3 : Mysql에 대한 Jar 버전 또는 Maven 의존성 버전을 업그레이드한다.
-
==============================
2.이 문제는 다음 단계를 사용하여 수정할 수 있습니다.
이 문제는 다음 단계를 사용하여 수정할 수 있습니다.
1 단계 : - mysql에서 쿼리를 실행하고 다시 시작하십시오 (버전 8.0 이상인 경우 사용자 이름은 root 임).
ALTER USER 'root'@ 'localhost'mysql_native_password에 의해 식별 됨 'yourpassword';
2 단계 : - select version ()을 실행하여 mysql의 버전을 확인하십시오. in mysql
the version of mysql in pom.xml should be same as the version of mysql installed (mine is 8.0.14) <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.14</version>
3 단계 : - mysql-connector jar 파일이 maven 저장소에 없으면 8.0.14 버전 jar 파일을 다운로드하여 저장소에 붙여 넣을 수 있습니다
$ \. m2 \ repository \ mysql \ mysql-connector-java \ 8.0.14
4 단계 : - maven 프로젝트 업데이트
5 단계 : - config.xml에서 driverClassName을 확인하십시오. com.mysql.cj.jdbc.Driver 여야합니다.
-
==============================
3.MySQL의 OLD_PASSWORD 기능을 사용하여 데이터베이스 사용자의 비밀번호를 업데이트해야합니다. 해결책
MySQL의 OLD_PASSWORD 기능을 사용하여 데이터베이스 사용자의 비밀번호를 업데이트해야합니다. 해결책
예 :
[rajesh-tpl-01@home ~]$ mysql -u root -p mysql Enter password: mysql> update user set password=OLD_PASSWORD('password') WHERE user='username'; Query OK, 0 rows affected (0.02 sec) Rows matched: 0 Changed: 0 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
-
==============================
4.프로젝트의 lib 폴더에있는 mysql-connector-java-version.jar (예 : mysql-connector-java-8.0.11.jar)을 확인하고 그에 따라 업그레이드하십시오.
프로젝트의 lib 폴더에있는 mysql-connector-java-version.jar (예 : mysql-connector-java-8.0.11.jar)을 확인하고 그에 따라 업그레이드하십시오.
-
==============================
5.나는 그 메시지가 암시하는 것을 끝냈다. 나는 pom.xml에 있었다 :
나는 그 메시지가 암시하는 것을 끝냈다. 나는 pom.xml에 있었다 :
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency>
최신 버전으로 변경되었습니다.
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency>
-
==============================
6.mysql-connector-java를 최신 버전으로 업데이트하십시오.
mysql-connector-java를 최신 버전으로 업데이트하십시오.
-
==============================
7.이 문제는 mysql-connector-java 버전 5.1.6에서 발생합니다. 버전 5.1.44로 업그레이드하십시오. 나를 위해 일했다. 나는 다음 의존성 버전을 사용했다.
이 문제는 mysql-connector-java 버전 5.1.6에서 발생합니다. 버전 5.1.44로 업그레이드하십시오. 나를 위해 일했다. 나는 다음 의존성 버전을 사용했다.
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.44'
-
==============================
8.POM.XML 파일의 버전을 업데이트하십시오. 문제가 클라이언트 버전에만 관련된 경우 최신 버전을 업그레이드 한 다음 프로젝트를 정리하십시오. 그것은 successfuly 실행이야.
POM.XML 파일의 버전을 업데이트하십시오. 문제가 클라이언트 버전에만 관련된 경우 최신 버전을 업그레이드 한 다음 프로젝트를 정리하십시오. 그것은 successfuly 실행이야.
-
==============================
9.이 메시지는 어디에서 입력 할 수 있습니까? 실행 파일 중이 메시지를 실행해야하는 파일은 무엇입니까? 감사
이 메시지는 어디에서 입력 할 수 있습니까? 실행 파일 중이 메시지를 실행해야하는 파일은 무엇입니까? 감사
from https://stackoverflow.com/questions/50505042/mysqlnontransientconnectionexception-client-does-not-support-authentication-pro by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트에서 swagger-ui를 완전히 비활성화하는 방법 (/ swagger-ui.html은 404를 반환해야 함) (0) | 2019.03.15 |
---|---|
[SPRING] Hibernate Validator와 함께 커스텀 ResourceBundle 사용하기 (0) | 2019.03.15 |
[SPRING] Spring 데이터 쿼리에서 자식 객체 필터링 (0) | 2019.03.15 |
[SPRING] 쿼리에서 Spring 데이터 몽고 사용 OR (0) | 2019.03.15 |
[SPRING] 스프링 MVC 컨트롤러에서 폼 데이터를 Map으로 얻는 방법은? (0) | 2019.03.15 |