오류 및 증상
MySQL 연결 중 애플리케이션이 다음과 같은 오류를 발생시키며 Connection을 획득하지 못하며 Exception이 발생합니다.
Unable to load authentication plugin 'caching_sha2_password'
MySQL 버전은 다음과 같습니다.
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.31 |
+-----------+
해결 방법
MySQL 8.0부터 인증 플러그인으로 caching_sha2_password를 사용합니다. 반면 MySQL 5.X는 mysql_native_password 방식을 default로 사용합니다.
MySQL 8.0부터는 SHA-256 기반의 두 가지 인증 플러그인을 제공합니다.
- sha256_password
: SHA-256 인증을 구현한 플러그인입니다. - caching_sha2_password
: sha256_password와 동일하지만 성능 향상을 위해 캐싱합니다.
따라서 아무런 설정도 하지 않았다면 다음 인증 방식 중 하나를 선택해야 합니다.
- SSL 보안 연결 사용
- RSA 보안 연결을 위해 비암호 연결 사용
- 특정 계정에 대해서 mysql_native_password 인증 방식의 연결 사용
특정 계정에 대한 인증 방식 변경
특정 계정에 대해서 로그인 인증 방식을 mysql_native_password로 변경합니다.
mysql> ALTER USER '계정'@'호스트' IDENTIFIED WITH mysql_native_password BY '비밀번호';
인증 방식 변경 후 grant table을 reload합니다.
mysql> flush privileges;