MySQL 8.0 이상의 버전을 사용할 경우 위와 같이 caching_sha2_password authentication plugin 문제로 접속이 안되는 경우가 있다.
터미널로 직접 접속은 가능하지만 외부 접속이나 sql client 접속이 안되는 경우이다.
mysql의 기본 인증 플러그인은 mysql_native_password였는데, 8.0 이후로 caching_sha2_password로 바뀐 듯하다. 따라서 caching_sha2_password 플러그인을 사용하라는 것이다.
하지만 caching_sha2_password 플러그인을 사용하려면
둘 중 하나를 사용해야 한다.
위의 두가지 방법을 사용해도 되지만 이 글에서는 소개하는 것은 위의 방법 말고 이전과 같이 접속하는 방법이다. 이게 가장 쉽다.
방법은 cashing_sha2_password로 되어있는 인증 방식을 이전의 mysql_native_password로 바꾸면 된다.
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
my.dnf 파일에서 아래처럼 설정한다.
[mysqld]
default_authentication_plugin=mysql_native_password
저장 후 mysql 재시동.
이는 다음에 계속 만든 유저 또한 mysql_native_password 플러그인을 사용할 수 있도록 기본값으로 설정하는 것이다.
다만 이미 만들어진 유저는 적용이 안되고, mysql 재시동 후에 새로 만든 유저에만 적용된다.