11강 [실습] Docker로 MySQL1 분만에 실행하기
3
작성한 질문수 22
docker실행하여 mySql 컨테이너 생성까지 성공했습니다.
하지만 마지막 부분의 어플리케이션 실행 부분에서 에러가 나오고 있습니다.
org.hibernate.exception.AuthException: Unable to obtain isolated JDBC connection [Access denied for user 'coupon'@'localhost' (using password: YES)] [n/a]
Caused by: java.sql.SQLException: Access denied for user 'coupon'@'localhost' (using password: YES)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
어떻게 대응해야 할까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. Jang Jaehoon님.
Access denied for user 'coupon'@'localhost' 오류는 애플리케이션이 MySQL에 접속할 때 사용한 coupon 계정의 비밀번호가 다르거나, 해당 계정이 올바르게 생성되지 않았을 때 주로 발생합니다. 먼저 Docker MySQL 컨테이너의 환경 변수와 Spring Boot의 datasource 설정을 비교해 주세요.
- MySQL 컨테이너의
MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE
- Spring Boot의
spring.datasource.username,spring.datasource.password,spring.datasource.url
특히 MySQL Docker 컨테이너를 생성한 뒤 환경 변수를 변경했다면, 기존 데이터 볼륨에 설정이 남아 변경 사항이 반영되지 않을 수 있습니다. 이 경우 컨테이너와 볼륨을 정리한 후 올바른 계정 정보로 다시 생성해야 할 수 있습니다.
Unable to determine Dialect without JDBC metadata는 Hibernate가 데이터베이스에 연결하지 못해 DB 종류를 확인하지 못하면서 연쇄적으로 발생한 오류일 가능성이 높습니다. 따라서 우선 Hibernate Dialect를 설정하기보다는 MySQL 접속 정보와 계정 권한을 먼저 확인하는 것이 좋습니다.
유사한 오류와 Docker MySQL 접속 정보 확인 방법은 아래 질문을 참고해 주세요.
해당 답변처럼 docker ps로 MySQL 컨테이너가 실행 중인지 확인하고, 컨테이너 실행 시 지정한 계정 정보가 애플리케이션 설정과 일치하는지 확인해 보세요. 또한 JDBC URL의 호스트도 실행 환경에 맞아야 합니다. 애플리케이션을 로컬에서 실행한다면 일반적으로 localhost:호스트에 매핑한 포트를 사용하고, 애플리케이션도 Docker 컨테이너에서 실행한다면 localhost 대신 MySQL 컨테이너 이름을 사용해야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
11강 [실습] Docker로 MySQL1 분만에 실행하기
0
5
1
6분46초
0
14
2
공략법
0
15
1
isInterrupted 질문 있다.
0
12
0
구현 방법에 대한 문의
0
20
2
선생님 질문있습니다!
0
8
1
선생님 샤딩에 대한 강의도 좀 해주세요
0
19
1
몽고DB CAP 이론 관련
0
26
2
아니 이거 갑자기 데이터베이스가 사라졌어요
0
27
1
모의고사 파일과 이론파일 업데이트
0
40
2
장애 격리 관련해서 궁금한 부분이 있어요
0
26
1
이론 pdf 다운은 어디서 하나요?
0
38
2
RunIdIncrementer batch 5랑 6랑
1
36
2
기타 영역 중 언두로그
0
26
0
질문있습니다.
0
34
1
15분 35초즈음 나오는 500개 단위로 쪼개는 경우 스레드 질문
0
25
1
@Modifying에 관하여
1
47
1
Issuance 테이블에 status, couponId 인덱스가 꼭 필요할까요?
2
66
1
부하 테스트 시 설정 관련 질문드립니다
1
92
2
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
2
113
1
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
95
1
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
125
1
스크립트에 대해 질문 있습니다.
1
94
1
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
115
1





