MySQL8.0으로 User를 생성하려고하니 아래와 같은 오류가 발생하여 조사해보았습니다.
java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.
MySQL8.0에서는 비밀번호 해시 알고리즘인 SHA-256을 구현하는 두가지 인증 플러그인을 지원합니다.
MySQL8.0부터는 기본 인증 플럭인이 mysql_native_password에서 caching_sha2_password로 바뀌었는데 이로인해서 발생한 문제라고 합니다.
MySQL chaching_sha2_password 플러그인을 사용하려면
둘 중 하나를 사용해야하는데 이 두 방식 모두 어려움으로 대부분의 게시글이 이전 방식인 mysql_native_passowrd plugin 사용 방법으로 서술하였습니다.
아래의 DDL방식을 사용해 구식 방식으로 변경하여 진행하면 User를 생성할 수 있습니다.
alter user "사용자이름"@'localhost' identified with mysql_native_password by '암호'
database 설정에서 SSL과 RSA를 둘다 사용하지 않도록 설정해줍니다. 하지만, 이 경우는 보안에 취약할 수 밖에 없어 추천하지 않는습니다.
[mysqld]
default_authentication_plugin=mysql_native_password
이 경우 MySQL을 재가동해야 적용됩니다.