프로젝트/ToDoApp프로젝트-Spring

[벡앤드] Docker 를 통해서 MySQL 연결, 그 후 Spring Boot 연결

sintory-04 2025. 1. 5. 18:03

 

 

이전에도 스프링부트랑 연결한게 있으나,

프론트를 만들고오니 다시 연결부터 해야하는 상황이 생겨버렸다 ^ㅡ^

 

그리하여 다시 Docker를 통해서 mysql-container 을 만들고

만들어진 container 를 MySQL에 연결하고자 한다.

 

0. 일단 Docker 와 MySQL이 다운 받아져 있어야한다.

- Docker 와 MYSQL workbench 설치하고 오기 

- cmd 창에서 mysql 설치하기.

docker pull mysql:8.0

 

1. Docker 를 통해서 Container 만들기

① cmd 창을 킨 후 container 만들어주기

- mysql-container 에 쓰고 싶은 이름하면 도미

- MYSQL_ROOT_PASSWAORD > root password 입력해주기

docker run --name [mysql-container] -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0

 

② 실행 중인 컨테이너 접근하여 SQL 실행 코드

docker exec -it todoapp-mysql mysql -u root -p

 

2. MYSQL Workbench 접속

① 먼저 connetions 를 만들기 위해 + 버튼 눌러주기

 

② 연결 해주기. TestConnection 통해서 오류 없이 돌아가는 거 확인하기 > 그후 OK 눌러주면 됨.

 

③ 만들어진 Connetions 더블클릭

 

④ SQL 파일 추가 후, 코드 작성을 해준 뒤에 번개모양(실행) 해주기

 

CREATE database todoapp;

CREATE TABLE todos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    task_name VARCHAR(255) NOT NULL
);

CREATE TABLE completed (
    todo_id INT PRIMARY KEY,
    completed BOOLEAN DEFAULT FALSE,
    FOREIGN KEY (todo_id) REFERENCES todos(id) ON DELETE CASCADE
);

SELECT * From todos;
SELECT * FROM completed;

 

 

⑤ 들어가서  왼쪽 Navigator 보면 schmas 를 통해 현재 DB를 볼 수 있음. 근데 오른쪽에있는 돌아가는 버튼 눌러줘야지 반영됨. (todoapp 있으면 성공)

3. Spring Boot 파일과 MySQL 연결

파일 두가지를 수정해줘야함.

appliction.properties 파일 수정

src/main/resources/appliction.properties 파일 찾아가서 아래와 같이 수정.

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/todoapp
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

 

주의해야할 것이

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/todoapp

todoapp 이 DB랑 똑같아야함.

근데 이게.. sql connetion 이름인지, 아니면 DB이름인지는 모르겠음. 본인은 둘다 똑같아서 연결되긴함.

 

② build.gradle 파일 찾아서 repositories와 dependencies 수정하기

repositories {
	mavenCentral()  // Maven Central 리포지터리 추가
}

dependencies {
	implementation 'mysql:mysql-connector-java:8.0.28'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	developmentOnly 'org.springframework.boot:spring-boot-docker-compose'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'  // Spring Boot에서 JUnit을 기본적으로 지원
	testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' // JUnit 5 사용 시 추가
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

 

 

③ 수정했으면 일단 gradle 동기화 해줘야함. 동기화 누른 후에 다운로드도 해주기.

 

④ application.properties 입력시, DB 입력칸에 아이콘이 생김. 그거 클릭해서 비밀번호 입력하면 오른쪽 DB란에 연결된 걸 볼 수 있음.