bootRun 실행 문제
1. 현재 학습 진도
몇 챕터/몇 강을 수강 중이신가요?
-> 2-4 설정 부분 듣고 있습니다!
2. 어려움을 겪는 부분
어느 부분에서 막히셨나요?
-> Caused by: com.mysql.cj.exceptions.WrongArgumentException: !AuthenticationProvider.BadAuthenticationPlugin!
bootRun 실행 중 계속해서 !AuthenticationProvider.BadAuthenticationPlugin! 예외가 발생하면서 실패가 뜹니다.
인터넷 검색했더니 MySQL 사용자 인증 plugin을 mysql_native_password 로 변경하는 방법이 있어서 변경해보았지만 계속해서 해결하지 못해서 문의 드립니다.
답변 3
2
혹시 저처럼 실수하시는 분 계실까 봐 해결 방법 공유드립니다!
제 로컬 MySQL이 3306 포트를 점유하고 있어서, Spring Boot가 Docker의 MySQL이 아니라 로컬 MySQL에 연결되고 있었습니다ㅠㅠ
netstat 으로 포트 점유 확인 후, 해당 프로세스를 강제 종료하고 딩코님 말씀대로 루트 프로젝트의 docker-compose.yml에 command: --default-authentication-plugin=mysql_native_password 추가 후 docker compose up db로 DB 컨테이너 다시 띄우니까 정상적으로 연결되었습니다!
같은 오류 겪으시는 분들 참고되셨으면 좋겠습니다!
0
안녕하세요 포포뇨님!! 좋은 질문 감사합니다 ㅎ.ㅎ
MySQL 8.0 이상에서는 기본 인증 플러그인이 caching_sha2_password로 변경되었는데, 일부 클라이언트 라이브러리가 이를 완전히 지원하지 못해 발생하는 문제로 보입니다!
루트 프로젝트의 docker-compose.yml 에서 아래와 같이 수정을 해보시고 다시. 실행해보실 수 있을까요? 한 번 츄라이해보시고 안되시면 말씀해주세요!!
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
0
안녕하세요, 인프런 AI 인턴입니다. 포포뇨님.
현재 겪고 계신 문제는 MySQL의 사용자 인증 방식과 관련된 것입니다. AuthenticationProvider.BadAuthenticationPlugin 예외는 주로 MySQL 서버와 클라이언트(예: Spring Boot 애플리케이션) 간의 인증 방식 불일치로 인해 발생합니다. 여기 몇 가지 해결책을 제시해드리겠습니다.
문제 원인
- MySQL의 인증 방식: MySQL 8.0 이상에서는 기본 인증 플러그인이
caching_sha2_password로 변경되었습니다. 하지만 JDBC 드라이버 또는 설정에 따라mysql_native_password방식이 요구될 때가 있어 충돌이 발생할 수 있습니다.
해결 방법
MySQL 사용자 인증 방식 변경:
- MySQL 사용자 계정의 인증 방식을
mysql_native_password로 변경할 수 있습니다.
ALTER USER 'yourUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourPassword';- MySQL 사용자 계정의 인증 방식을
JDBC URL 수정:
- JDBC URL 에
useSSL과allowPublicKeyRetrieval속성을 추가하여 연결 문제를 해결할 수 있습니다.
- 예시:
jdbc:mysql://localhost:3306/yourDatabase?useSSL=false&allowPublicKeyRetrieval=true
- JDBC URL 에
JDBC 드라이버 업그레이드:
- 사용 중인 JDBC 드라이버 버전을 확인하고, 최신 버전으로 업그레이드하여 호환성 문제를 해결할 수도 있습니다. 최신 드라이버는 MySQL의 최신 기능과 변경사항을 더 잘 지원합니다.
- 사용 중인 JDBC 드라이버 버전을 확인하고, 최신 버전으로 업그레이드하여 호환성 문제를 해결할 수도 있습니다. 최신 드라이버는 MySQL의 최신 기능과 변경사항을 더 잘 지원합니다.
참고 자료
이 방법들이 도움이 되길 바라며, 추가적으로 문제 해결에 어려움을 겪으신다면 추가적인 정보를 제공해주시면 좀 더 구체적인 지원을 드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
44
2
Build 관련 문제 (테스트 관련 문제)
0
44
2
인덱스 관련 질문 있습니다.
0
75
2
비관적 락 구현 방식 문의 건
0
82
2
외부 api 처리 방안에 대하여 궁금한 점이 있습니다.
0
93
2
네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문
0
88
2
이벤트) 백엔드 기술면접 실전문제집
0
107
2
로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?
0
134
2
데드락 발생 시, 외래 키를 제거하는 방법 관련 질문
0
91
2
Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.
0
115
2
k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민
0
142
2
강의와 성능수치 비교
0
105
2
13강 강의 뒷부분의 과제 안내부분은 어디있나요?
0
52
2
이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문
0
66
2
[수업 자료 질문] Cache Aside의 특징 문의
0
89
2
[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의
0
83
2
블로그에 학습 내용 정리 포스트를 올려도괜찮나요?
0
113
2
멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?
0
91
3
클라우드 환경 배포시 부하 테스트 방식에 대하여
0
153
2
k6 dashboad 안나오는 상
0
119
2
2-4 도커 빌드 에러가 계속 납니다.
0
302
2
AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것
0
118
2
성능 측정시
0
114
2
API 별 실행 쿼리 모니터링 구현 질문 있습니다.
0
87
2





