inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Nhập môn/Thực hành Redis dành cho cả người không chuyên (Phần tối ưu hóa hiệu suất truy vấn)

Thiết lập EC2, RDS, Spring Boot, Redis

EC2 서버 실행시키기 관련하여

427

작성자 없음

0 câu hỏi đã được viết

0

# 스프링 프로젝트 경로로 들어가서 아래 명령어 실행

$ ./gradlew clean build -x test

$ cd build/libs

$ java -jar -Dspring.profiles.active=prod {빌드된 jar 파일명}

서버 실행시키기 명령어 단계에서 $ java -jar -Dspring.profiles.active=prod {빌드된 jar 파일명} 실행 시 ec2 터미널 창에서 아래와 같은 에러가 발생하게 됩니다.

 

현재 jar 파일은 그림과 같이 생성되었고 명령어는

java -jar -Dspring.profiles.activate=prod demo-0.0.1-SNAPSHOT.jar 이렇게 진행하였습니다.

image.png

Failed to initialize JPA EntityManagerFactory: 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)

2024-10-03T16:57:37.160Z WARN 5523 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: 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)

2024-10-03T16:57:37.166Z INFO 5523 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]

2024-10-03T16:57:37.213Z INFO 5523 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.

2024-10-03T16:57:37.243Z ERROR 5523 --- [ main] o.s.boot.SpringApplication : Application run failed

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)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.13.jar!/:6.1.13]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.13.jar!/:6.1.13]

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.4.jar!/:3.3.4]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.4.jar!/:3.3.4]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.4.jar!/:3.3.4]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.4.jar!/:3.3.4]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.4.jar!/:3.3.4]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.4.jar!/:3.3.4]

at com.example.demo.DemoApplication.main(DemoApplication.java:10) ~[!/:0.0.1-SNAPSHOT]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]

at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

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)

at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.13.jar!/:6.1.13]

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.13.jar!/:6.1.13]

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.13.jar!/:6.1.13]

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.13.jar!/:6.1.13]

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[spring-beans-6.1.13.jar!/:6.1.13]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802) ~[spring-beans-6.1.13.jar!/:6.1.13]

... 22 common frames omitted

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)

at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:153) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:364) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]

 

 

redis nosql query-tuning performance-tuning

Câu trả lời 2

0

jscode

안녕하세요!

질문해주신 에러는 DB가 정상적으로 연결되지 않았을 때 발생하는 에러로 보입니다.

아래 명령어를 활용해 EC2에서 mysql에 접속이 되는 지 확인 해보시면 좋을 것 같습니다!

 

https://vkein.tistory.com/entry/MySQL-%EC%A0%91%EC%86%8D-%EB%AA%85%EB%A0%B9%EC%96%B4

-> mysql -u root -p와 같은 명령어

'mysql 접속 명령어'라는 키워드로 검색하시면 더 많은 자료들도 확인하실 수 있을거에요:)

 

만약 이렇게 접속했을 때도 MySQL에 접속이 안 된다면

MySQL의 계정과 비밀번호가 잘못된 건 아닌지 체크 해보시기 바랍니다!

 

만약 명령어로 접속이 잘 된다면 다시 한 번 질문 남겨주시기 바랍니다:D

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. jay님. 에러 메시지를 보니, 스프링 부트 환경에서 JPA를 설정하는 과정에서 JDBC 환경을 설정할 수 없다는 문제를 겪고 계시는 것으로 보입니다.

주요 오류 원인은 jakarta.persistence.jdbc.url 혹은 hibernate.dialect 설정이 부족해서 발생하는데요, 데이터베이스와의 연결 정보를 스프링 부트에 제공해 주어야 합니다. 이 문제를 해결하기 위해 다음 몇 가지 사항을 확인해 보세요.

  1. application.properties 혹은 application.yml 파일 확인:

    • 데이터베이스와의 연결 정보가 올바르게 설정되어 있는지 확인하세요. 적어도 spring.datasource.url, spring.datasource.username, spring.datasource.password를 정확하게 설정해야 합니다.
    • spring.jpa.properties.hibernate.dialect 값이 올바른지도 체크하세요. 일반적인 설정 예시는 다음과 같습니다:
      
      spring.datasource.url=jdbc:postgresql://<DB_HOST>:<DB_PORT>/<DB_NAME>
      spring.datasource.username=<DB_USERNAME>
      spring.datasource.password=<DB_PASSWORD>
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
      

  2. 프로파일 설정 오류:

    • 명령어에 오타가 있습니다. -Dspring.profiles.active=prod로 설정하셔야 하는데 현재 -Dspring.profiles.activate=prod로 입력하셨습니다. active로 수정하세요.
  3. RDS 설정 확인:

    • AWS RDS를 사용 중이시라면, 해당 인스턴스와 EC2 인스턴스 간의 네트워크 연결 설정이 올바른지, 보안 그룹이 데이터베이스와 통신할 수 있도록 설정되어 있는지 확인하세요.

이문제를 해결하는 과정에서 유용할 수 있는 기존 답변들을 찾아 아래에 공유드립니다:

  • RDS관련에서는 hibernate.dialect 설정이 없어서 발생한 유사한 문제가 공유되었습니다. hibernate 설정을 직접 추가해야 할 수 있습니다.

이 외에 추가적으로 궁금하신 사항이나 더 자세한 도움이 필요하시다면 질문을 이어서 남겨 주시면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

redis VS valkey

0

188

2

스프링 부트에 Redis 적용하기 질문

0

93

2

redis 적용을 위한 service 반환값

0

61

2

redis 사용으로 인한 비용

0

238

2

Redis를 적용했음에도 불구하고 조회 성능의 큰 차이가 없고 오히려 더 안좋은 조회속도를 보이는 것 같습니다.

0

141

3

Elastic Cache 에러

0

85

2

Elastic

0

73

2

AWS 리소스 삭제에 관하여

0

74

2

ec2안에서 pull 받는 이유가 뭔가요 ?

0

83

2

Nest.js + Redis 구현 문제

0

677

3

데이터를 안가져와요

0

72

2

Spring Boot 프로젝트에 Redis 셋팅 추가하기에서 13분 질문있습니다.

0

186

2

레디스 환경 셋팅 질문있습니다.

0

98

2

엘라스틱 서치와 레디스의 차이점을 알고 싶습니다.

0

258

2

-parameters

0

128

2

Redis vs Memcached

0

228

2

redis 를 compose 로 묶어준 이유가 궁금합니다.

0

155

2

k6의 결과 해석

0

256

2

Jackson2JsonRedisSerializer에 대한 궁금증

0

233

1

사용된 어노테이션에 관한 질문

0

144

1

Redis 사용 방식에 대해서 질문 있습니다

0

154

1

aws elasticcache redis 툴 접속.

0

217

1

Redis를 사용하는 이유

0

695

2

로컬에서 docker compose 명령어 실행 시

0

275

2