작성
·
71
0
현재 이것이 백엔드 개발이다 with 자바편 책을 보면서 학습중입니다.
스프링부트에 도커에서 실행되는 데이터베이스(mysql)를 연동하려고 하는데
위와 같은 에러가 발생합니다.
스프링부트 pom.xml 내용 중 mysql 의존성 부분
도커 컨테이너 생성에서 mysql 버전
Application.java
책에서 나온 내용과 동일하게 진행했으며 스키마, 데이터베이스 테이블까지 만든 상태입니다. 어떤 것이 잘못된 건지 감이 잡히지 않습니다. 도움 부탁드려요
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
에러 메시지와 스택 트레이스에 따르면, Unable to load authentication plugin 'auth_gssapi_client'
오류는 MySQL 데이터베이스에 연결하려고 할 때 인증 플러그인 auth_gssapi_client
를 로드할 수 없음을 나타냅니다. 이런 유형의 오류는 일반적으로 JDBC 드라이버와 MySQL 서버 간의 호환성 문제 때문에 발생할 수 있습니다.
사용하신 MySQL 커넥터 버전은 8.0.29
로, 에러 메시지와 관련이 있을 수 있습니다. auth_gssapi_client
는 MySQL 8에서 사용되는 인증 방식 중 하나이며, 이것이 원인일 가능성이 높습니다. MySQL 서버 버전과 클라이언트 라이브러리(JDBC 드라이버)의 호환성을 확인하는 것이 중요합니다.
또한, application.properties
에서 데이터베이스 연결 설정을 정의할 때 사용한 설정 값들을 검토하는 것이 좋겠습니다. 주어진 설정에서는 다음과 같습니다:
- spring.datasource.url=jdbc:mysql://localhost:3306/product_management
- spring.datasource.username=root
- spring.datasource.password=hanbit
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
여기서 설정은 올바르게 보이지만, MySQL 8.x 사용 시 spring.datasource.url
에 명시적으로 인증 방식을 설정하는 옵션을 추가할 수 있습니다. 예를 들어, 다음과 같이 사용자 인증 방식을 지정할 수 있습니다:
spring.datasource.url=jdbc:mysql://localhost:3306/product_management?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&authPlugins=com.mysql.cj.authentication.MysqlNativePasswordPlugin
이렇게 설정하면 MysqlNativePasswordPlugin
을 사용하여 로그인할 수 있으며, auth_gssapi_client
관련 문제를 우회할 수 있습니다.
또한 사용하고 계신 MySQL 컨테이너의 버전도 확인하시는 것이 좋겠습니다. 도커 컨테이너 생성에서 사용된 MySQL 버전도 8.0.29
로 호환성에 문제가 없어야 하나, 설정에 따라 문제가 발생할 수도 있습니다.
이러한 변경 후에도 문제가 해결되지 않는 경우, 데이터베이스 사용자 생성 시 사용된 인증 방식과 JDBC URL에 명시된 인증 방식이 일치하는지 확인해 보세요. MySQL 서버에서 사용자를 생성할 때 사용한 인증 플러그인과 연결을 시도할 때 사용된 인증 플러그인이 일치해야 합니다.
마지막으로, MySQL 서버 로그와 스프링 부트 애플리케이션 로그를 추가로 확인하여 더 구체적인 오류 메시지나 경고를 찾아보는 것도 도움이 될 수 있습니다.