inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

13강. Spring에서 Database 사용하기

웹UI에서 실행하면 내부 서버 오류가 뜨네요 ㅠㅠ

795

homekgu

작성한 질문수 3

1

위 문장의 syntax 에러가 아래와 같이 뜨는데

어떻게 해결해야할까요..?ㅜ

SQL은 MySQL Command Line client 사용했습니다..!

java JPA spring aws spring-boot jpa mysql

답변 1

0

최태현

안녕하세요! homekgu님~!! 질문 올려주셔서 감사드립니다! 🙏 서버 내부 오류가 나서 많이 답답하셨겠어요!!! 😭

보내주신 에러를 기반으로 몇 가지 알 수 있는 점을 말씀드려볼게요!!!

 

[알 수 있는 점]

  • org.h2.jdbc.JdbcSQLSyntaxErrorException

    • 현재 에러는 H2와 관련된 에러입니다! H2는 MySQL과 다른 경량 Database로 <38강>에서 다루고 있습니다!

    • 바꾸어 말하면 현재 MySQL에 SQL 쿼리가 나가고 있지 않고, H2에 SQL 쿼리가 나가고 있습니다!

    • Spring에서는 데이터베이스가 설정되지 않으면 H2를 기본으로 설정하게 됩니다!

    • 때문에 MySQL 설정이 제대로 되지 않은 것이라 인지할 수 있습니다!

  • Syntax error in SQL statement "..."; expected 'identifier'

    • 그렇다면 H2에서는 왜 에러가 나왔는가!

    • 그 이유는 user 라는 테이블 이름 때문입니다!

    • user 는 H2에서 identifier (식별자)로 Java 변수 이름이 if나 while을 쓸 수 없는 것처럼 그 자체로 의미를 갖는 문구 입니다.

      • 정확히는 H2 버전에 따라 다른데, Spring Boot 2.7.x 버전에서 사용하는 H2 부터는 user를 identifier로 인지합니다.

 

[해결책]

현재 MySQL과 연결되어 있지 않고 H2 DB와 연결되어 있는 것은 자명하므로, MySQL 설정이 제대로 된 것인지 확인해야 합니다!

  • resources 폴더 안에 application.yml 이 잘 들어 있는지 확인해주세요!

  • application.yml 파일 안에 DB 관련 설정이 정상적으로 들어가 있는지 확인해주세요!

spring:
  datasource:
    url: "jdbc:mysql://localhost/library"
    username: "root"
    password: ""
    driver-class-name: com.mysql.cj.jdbc.Driver

혹시나 위의 두 설정을 모두 잘 했는데도 MySQL 연결이 되고 있지 않다면, 현재 IntelliJ에서 실행되는 스프링이 resources 폴더를 리소스 폴더로 인지하지 못하고 있을 수 있습니다!

이 경우는, resources 폴더 우클릭 > Mark Directory as > Resources Root 해주셔서 해당 폴더를 리소스 폴더로 인지할 수 있게 적용해주면 됩니다!!

image

어제 늦게까지 원인을 찾으시느라 고생 많으셨습니다 ㅠㅠㅠㅠ 꼭 해결되셨으면 좋겠습니다! 🙏

위의 내용들을 적용해보시고 잘 안되시면 또 편하게 질문 올려주세요~! 😊

감사합니다!! 🙇

0

homekgu

적용했는데도 서버가 오류가 뜨네요..ㅠㅠ

이 문장이 오류 원인인거 같은데.. 방법이 있을까요..?ㅜㅜ

0

최태현

보내주신 스크린샷을 확인해보니, application.yml 이 아니라 applicaton.yml 로 되어 있습니다!! i 가 빠졌네요!!!

제 생각에 파일 이름을 정상적으로 만들어주시면 잘 될 것 같습니다 ㅎㅎㅎㅎㅎ

0

homekgu

이런..어이없는 실수를..ㅠㅠ 앞으로 오류가 나면 기본적인것부터 살펴봐야겠네요 ㅠㅠ 사소한 실수에도 친절하게 답변해주셔서 감사합니다 선생님!

0

최태현

아이고 아닙니다~~ 익숙하지 않으면 찾기 은근히 어려우 부분이죠! 😭 이런 경험들이 쌓이시면 에러 해결도 쉽게 하실거에요~~!! 또 진행하시다가 궁금한 점 있으시면 편하게 질문 남겨주세요! 감사합니다!!! 🙏

패키지 구분에 대해 궁금한게 있습니다

0

27

2

리액트 관련 질문이 있습니다.

0

65

2

스프링부트 버전

0

78

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

60

2

33강. UserLoanHistory의 관계성에 대한 질문

1

57

2

Java JDK 버전 문의의 건

0

136

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

67

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

82

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

88

2

여기까지 다 끝냈다고 하셨는데

0

81

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

53

1

spring 개념적인 질문

0

72

2

인텔리제이 샘플코드 실행 안됨 오류

0

144

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

88

1

마이그레이션 오류입니다.

0

176

3

Whitelabel Error Page 오류가 났습니다.

0

172

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

95

3

궁금한게 있습니다.

0

61

2

DTO 관련

0

71

2

궁금한게 있습니다!

0

70

2