본문 바로가기

Back-End/Spring

[Spring Boot] Spring Boot & MySQL 연동

728x90

앞선 포스트에서 스프링 부트 프로젝트를 하기 위해 IntelliJ 에서 기본 셋팅을 마쳤습니다. 이어서 application.yml 을 설정하면서, DB 를 사용하기 위한 MySQL 연동을 해보겠습니다.

 

1.  application.yml 설정 (서버 포트 설정)

1) resources > application.properties 파일을 삭제하고, application.yml 파일을 새로 만듭니다.

application.properties 삭제

 

2) New > File 에서 application.yml 파일을 새로 만듭니다.

New > File

 

application.yml 파일 생성

 

3) 다음과 같이 서버 포트 번호를 8081로 설정합니다.

server:
	prot: 8081

 

 

 

2.  MySQL 연동

프로젝트 실행을 하면, 다음과 같은 에러가 뜨는 경우가 발생할 때가 있는데, Database 에 연결할 때 필요한 정보가 없기 때문에 발생합니다. 주로 스프링 프레임워크를 이용해 프로젝트를 구성하는 초기에 많이 발생하는 에러입니다.

Database 관련 정보가 없어 발생한 에러

 

 

위에서 Database 관련 정보가 없어서 발생한 에러를 해결하기 위해 application.yml 파일을 설정해줍니다. 파일 설정에 앞서, MySQL Workbench 에서 데이터베이스를 생성하는 것부터 해보겠습니다.

 

1) MySQL Workbench 에 들어가서, 다음과 같이 Create Schema... 를 클릭합니다.

Create Schema...  클릭

 

2) Schema Name 을 설정하고, Apply 를 클릭합니다.

Schema Name > Apply 클릭
Apply 클릭

 

3) 아래와 같이 'board' 데이터베이스가 생성된 것을 확인할 수 있습니다.

board 데이터베이스 생성

 

4) 이렇게 데이터베이스를 생성한 후, intelliJ 로 돌아가서 DB Connection 을 합니다.

5) intelliJ 의 오른쪽을 보면 아래와 같이 JPA Buddy 탭이 있습니다. (없는 경우, intelliJ 에서 설치를 권장하는 문구가 뜰 것입니다. 설치해주면 됩니다.)

 

6) DB connections 에서 마우스 오른쪽 버튼을 클릭해 New > DB Connection... 을 클릭합니다.

New > DB Connection... 클릭

 

7) Database type 을 MySQL 로 설정해주고, Database URL > Connection params 는 아래와 같이 설정해줍니다.

Database type : MySQL 로 설정
Connection params

 

8) Database userpassword 를 MySQL 에서 설정한 값으로 입력하고, Test Connection 을 클릭합니다. 다음과 같이 나오면 DB 연결이 성공적으로 된 것입니다.

DB 성공적으로 연결

 

9) 이제 application.yml 에서 DB 연결에 대한 정보를 아래와 같이 입력해주면 됩니다. h2 데이터베이스를 사용할 경우, AutoConfigure 에서 설정을 알아서 해주기 때문에 별도의 설정이 필요없지만, MySQL 을 사용한다면 application.yml 파일에서 커넥션 정보를 작성해주어야 합니다.

# database 연동 설정
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/board?serverTimezone=UTC&characterEncoding=UTF-8
    username: root
    password: 1234
  thymeleaf:
    cache: false

 

  • driver-class-name
    • com.mysql.jdbc.Driver / com.mysql.cj.jdbc.Driver 두 종류가 있습니다.
    • 전자는 deprecated 에러가 뜹니다. 새로 업데이트 된 버전인 후자를 사용하도록 합니다.
  • url
    • localhost:3306/board : board 는 database 를 의미합니다. (MySQL 에서 'board' 데이터베이스를 생성하였습니다.)
    • serverTimezone=UTC : URL 쿼리 스트링에 serverTimeZone 을 작성해주어야 에러가 발생하지 않습니다.
  • username / password
    • MySQL 의 계정명과 비밀번호를 작성해줍니다.

 

10) 마지막으로, spring data jpa 설정을 해줍니다.

  # spring data jpa 설정
  jpa:
    jpa:
      database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
      open-in-view: false
      show-sql: true
      hibernate:
        ddl-auto: update

 

이렇게 해서, 스프링부트 프로젝트를 시작하기에 앞서 application.yml 파일을 설정하고, DB 연동을 위한 작업을 모두 마쳤습니다.

728x90