본문 바로가기

Backend/Spring

[SpringBoot] SpringBoot와 Mysql 연동

기본적인 세팅을 완료했으면 Mysql연동을 진행해 볼게요.

 

https://chanho0912.tistory.com/4

 

[Spring/SpringBoot] IntelliJ 소개 및 Gradle 프로젝트 설정

필자는 SpringBoot 개발 환경으로 보통 IntelliJ를 사용한다. 아직 개발에 대한 경험이 깊지 않아 eclipse와 다양한 관점에서 비교는 어려울 수 있으나, 필자가 확실하게 느낀 IntelliJ의 강점은 다음과 같

chanho0912.tistory.com

 

여기까지 완료하신 분이라면

group = 'com.StudyProject'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.projectlombok:lombok'

    implementation 'com.h2database:h2'
    
    implementation 'mysql:mysql-connector-java'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    
    developmentOnly 'org.springframework.boot:spring-boot-devtools'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

 

dependencies에 Mysql Connector를 추가해줍니다.

추가로 Mysql을 사용하면서 대부분 JPA를 같이 사용할 것이기 때문에 JPA dependencies도 추가해 줍니다.

 

저 같은 경우에는 윈도우에서 진행하고 있어서 workbench의 도움을 받습니다. 

workbench 사용하시는 분이라면

 

새로 Mysql 서버 하나 local호스트:3306에 만들어 줍니다.

 

 

저 같은 경우는 임시로 chanho-blog-project로 이름을 지어서 만들어 주었습니다.

 

새로 연결해 주셨으면 다음 sql문을 실행해 줍니다.

 

create user 'username'@'%' identified by 'xxxx';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';

CREATE DATABASE blog CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
use blog;

show variables like 'c%';

 

기본적으로 username 하나 설정해 주시고,

 

해당 username에게 모든 권한을 부여해 줍니다. 

 

Database명은 진행하시는 프로젝트 명에 맞게 맞추어 만들어 주시면 될 것 같습니다. 저는 blog로 진행하였습니다.

 

보시는 바와 같이 마지막 query까지 실행되었을 때 database가 utf8로 설정되어있으면 성공적으로 되었습니다. 추가로 use blog까지 확인을 해주시면 됩니다.

 

자 그러면 application.properties에서 설정을 해줍시다.

 

기본적으로 프로젝트의 src / main / application.properties 파일에 다음과 같이 설정해 줍니다.

spring.profiles.include=real-db
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57InnoDBDialect
spring.session.store-type=jdbc

# Mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/[your database name]?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
spring.datasource.username=[your username]
spring.datasource.password=[your password]

# JPA
spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl-auto=true
spring.jpa.show_sql = true

# Logging
logging.level.org.springframework.web=DEBUG

 

* 추가로 Mysql 5.7 버전을 사용 중입니다.

 

여기까지 설정해 주시고, 

 

정상적으로 App이 빌드되면 정상적으로 Mysql이 연동된 것입니다.

 

*저의 글에 대한 피드백이나 지적은 언제나 환영합니다.