본문 바로가기

DB & Storage & Stream/Mysql, MariaDB

[Database/MySQL, MariaDB] MySQL 연결 시 Unable to load authentication plugin 'caching_sha2_password' 오류

오류 및 증상

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;