티스토리 뷰

초보 웹 개발자를 위한 스프링 5 프로그래밍 입문(최범균 저)의 chap08  jdbcTemplate 예제를 따라 하다 main 클래스 (MainForMemberDao)를 실행하는데 아래와 같은 오류가 발생했다.

 

 

java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

 

원인

어떤 오류인가? 블로그도 보고 공식 문서를 참고해 보니,

 

MySQL은 사용자 계정 암호에 대해 SHA-256 해싱을 구현하는 두 가지(sha256_password, caching_sha2_password) 인증 플러그인을 제공하는데, MySQL 8.0부터 caching_sha2_password가 기본 인증 플러그인이라고 한다.

caching_sha2_password는 SSL 보안 연결을 사용하거나 RSA 보안을 적용한 비암호 연결을 사용 사용해야 한다고 한다.

 

이전에 setUrl() 메서드에서 ssl 인증을 fales로 설정했기 때문에 caching_sha2_password 오류가 발생한 것이었다.

 

📌 해결 방법

해당 보안 요구 사항은 에 적용되지 않으므로 계정 password를 mysql_native_passsword로 전환하여 해결했다.

자세한 설명은 이 블로그에 나와있는데 잘 정리해 주셔서 보기 편했다. 내용이 길어 접은 글로 대체

더보기

1. cmd가 아닌 MySQL Command Line Client를 실행한다.

 

2. 접속 후 root 계정의 password 입력

3. 명령어 입력

> use mysql;

> select user , host, plugin from user where user = '사용자 ID' ;

 

 

4. 아래 쿼리문으로 사용자 ID 패스워드를 mysql_native_password 비밀번호로 바꾼다.

> ALTER USER '사용자 ID'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';

 

5. 변경하면 Mysql Workbench로 정상적으로 접근이 되는 것을 확인할 수 있다.

댓글