[MySQL] 에러 해결 Client does not support authentication protocol requested by server. plugin type was = 'sha256_password'

ZEDY·2023년 6월 17일
1

[백엔드] Spring Boot

목록 보기
1/27

삽질 개 오지게하고 결국엔 해결한 방법입니다.

1. 에러 메시지 확인

SQL State  : 08004
Error Code : 1251
Message    : Client does not support authentication protocol requested by server. plugin type was = 'sha256_password'
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Client does not support authentication protocol requested by server. plugin type was = 'sha256_password'

암튼 이런 오류였다.
구글링을 하니까

2. 첫번째 해결방법 (실패)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';
FLUSH PRIVILEGES;

이렇게 하면 해결된다고 한다.
근데 난 안됨.

3. 실패의 이유

1. MySQL 서버 접속

MySQL Server에 접속합니다. 근데 저는 이 방법을 cmd로 하는 방법을 몰랐는데 이번에 익힘
cmd 창에 MySQL Server가 있는 디렉토리에 접속해 bin까지 들어갑니다.

그리고 루트로 접속합니다.

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p

그런다음에
루트 비번을 입력하면 MySQL 서버와 연결이 됩니다.

2. MySQL 확인

1) 접근 확인

MySQL의 기본 스키마인 MySQL을 선택합니다.
그런다음에 유저를 확인합니다.

자 여기서 문제가 있던 겁니다.
저는 localhost밖에 없었기 때문에 내부 접근만 가능했던 겁니다. 그래서 외부 접근을 허용해야 해요.
그래서 %를 사용해 서버와 같은 외부에서 접근이 허용하도록 했습니다.

2) 플러그인 확인

그리고 해당하는 플러그인이 서버에 설치 되었는지, 사용하는지 확인을 합니다.

mysql> SHOW PLUGINS;

그럼 잘 적용된 것을 볼 수 있습니다.

이 방법 외에도
MySQL Installer에 접속하여 MySQL Server > Reconfigure > authentication 변경을 했습니다.

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글