한바다
Mysql Dialect 설정 에러 본문
✅ Mysql Dialect 설정 에러
aws에서 mysql명령어 설치후 FTP용 fileZlia 에서 build파일을 서버로 옮긴 후
aws에서 java -jar snapshot.jar 명령어 실행시 아래와 같은 오류 발생 하였다
마지막 줄 에러 메세지부터 살펴 보았다
(오류 코드)
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)
(오류 해석)
org.hibernate.HibernateException: JDBC 메타데이터 없이 Dialect를 결정할 수 없습니다.
'jakarta.persistence.jdbc.url'을 설정하고 사용자 정의 Dialect 구현을 제공해야 하는 경우에는 'hibernate.dialect'를 설정하십시오).
(오류코드)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'entityManagerFactory' defined in class path resource
[org/springframework/boot/autoconfigure/orm/jpa/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)
(오류해석)
org.springframework.beans.factory.BeanCreationException: 클래스 경로 리소스에 정의된 이름이
'entityManagerFactory'인 Bean을 생성하는 중 오류가 발생했습니다. 요청된 서비스를 생성할 수 없습니다.
JDBC 메타데이터 없이 Dialect를 결정할 수 없습니다(일반적인 경우에는 'jakarta.persistence.jdbc.url'을 설정하고 사용자 정의 Dialect 구현을 제공해야 하는 경우에는 'hibernate.dialect'를 설정하십시오) )
▶ 위 오류를 바탕으로 아래 내용을 확인해야 겠다
JDBC 메타데이터 없이 Dialect를 결정할 수 없습니다.
'jakarta.persistence.jdbc.url'을 설정하고 사용자 정의 Dialect 구현을 제공해야 하는 경우에는 'hibernate.dialect'를
설정하십시오
[에러 해결방안]
aws확인 시 아래와 같이 jdbc경로에 포트 번호는 34.227.26.11로 되어 있으나
aws에서 아래 코드를 출력하기 위한 명령어이다
우선, find명령어를 통해 application.properties파일이 어디에 있는지 확인한다
find / -name "application.properties"
/home/ec2-user/build/resources/main/application.properties 경로에 있다는 것을 알게 되었고
cd /home/ec2-user/build/resources/main/
그리고 파일내용을 cat 명령어로 파일 내용을 확인한다!
cat application.properties
awc에 생성한 나의 인스턴스 public번호는 54.86.117.98로 번호가 상이 하였다!
이 두개의 번호가 일치하면 에러가 해결될 듯 보여 새로 인스턴스를 생성해서 진행해보기로 한다!
-새로 인스턴스를 생성하여 위 포트번호를 맞춰줬는데 동일한 에러가 발생하였다!!
[에러 해결!!!]
첫번째, sql 명령어 잘못 입력!!
(수정 전)
GRANT ALL PRIVILEGES ON database_name.* TO 'Sixsence'@'%'
(수정 후)
GRANT ALL PRIVILEGES ON Sixsence.* TO 'Sixsence'@'%';
▶ database_name을 그대로 냅둔게 화근이였다
두번째, application.properties 파일에서 hibernate.dialect를 명시적으로 추가 해야 한다!
MySQL을 사용하는 경우, 아래와 같이 설정한다!!
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
▶ 코드를 변경해줬으니 FTP파일에 전송된 기존 buid파일을 삭제하고 변경된게 반영된 build파일을 전송해줬다!!
(build파일 변경!!)
▶ aws에 포트 9090추가.. 이미 되어 있는줄 알았는데 포트가 추가되어 있지 않았다!! 보안그룹에서 인바운드규칙 편집에
서 포트 9090을 추가 해준 후
public 번호와 포트번호로 합쳐진 아래 url에서 실행시 그렇게 보고 싶었던!! 아래 화면이 나왔따!!!
http://44.204.24.78:9090/
'aws' 카테고리의 다른 글
[배포]mySql 복제 (2) | 2024.09.05 |
---|---|
[배포]명령어 정리, awc mysql (2) | 2024.09.03 |
[배포]aws에 git프로젝트 올리기 (0) | 2024.09.02 |