본문 바로가기

개발공부/개발일지

[블로그 만들기] Spring boot 프로젝트에 MySQL DB 연동하기

 

 

 

 

 

프로젝트 생성과 빌드를 해준 뒤에 다음으로 한 작업은 데이터베이스 연동이다. 프로젝트에 사용할 DB는 MySQL을 사용하기로 정했는데 이유는 연관 자료가 많고, 게시물 등록의 형태도 그렇고 정해진 틀 안에서 사용할거라 비정형보다는 정형 데이터를 주로 저장할 것이기 때문이다. 

 

MySQL은 이미 설치되어 있어서 설치 단계는 생략하고, MySQL  WorkBench 8.0에 들어가서 바로 'root' 라는 이름의 connection을 생성해줬다. 

전에 MySQL을 설치하면서 root 계정을 만들었는데 그 때 비밀번호를 적어뒀던 걸 활용했다. 근데 이게 스프링 부트 프로젝트에 연결할 때 yml 폴더 안에 계정 정보를 적어야해서 그냥 간단하고 짧은 비밀번호로 변경해야겠다고 생각했다. git에 올라갈 때 유출되도 상관없는 비번으로ㅎ

 

 

 

 

1. MySQL root 비밀번호 변경하기

MySQL의 root 비밀번호를 바꾸는 방법을 구글링해보고 내가 실행한 방법은 아래와 같다.

 

 

1) 우선 cmd를 열고 MySQL이 설치된 경로로 이동하기

'cd 위치' 를 입력하면서  최종적으로 cd C:\Program Files\MySQL\MySQL Server 8.0\bin 위치로 이동한다.

 

 

 

2) 그리고 MySQL을 실행시키기 위해 명령어를 입력한다.

mysql -u root -p

그럼 비밀번호를 입력하라고 하는데 기존의 비밀번호를 입력하면 된다. 정상적으로 입력했다면 Welcom to the MySQL monitor. 라는 문구와 함께 실행이 된다. 이제 비밀번호를 변경할 준비가 된 것이다.

 

 

 

 

3) 비밀번호 변경을 위한 명령어를 입력한다.

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '변경할 비밀번호';

다른 문제가 없다면  Query OK, 0 rows affected 라는 메세지가 출력될 것이다.

 

 

 

 

4) 변경 사항을 저장하기

FLUSH PRIVILEGES;

이렇게 입력해서 변경사항을 저장해준다. 그리고 MySQL을 종료한 뒤에 다시 시작을 해보고 재 로그인을 해보면 변경된 것을 확인할 수 있다. 종료는 quit을 입력하면 된다.

mysql> quit

 

5) MySQL 다시 시작하기

그리고 MySQL을 다시 시작할 때 윈도우 검색 기능에서 '서비스' 라고 검색하면 각종 프로그램 목록이 뜬다. 그 중에 MySQL80 이라고 써있는 것을 찾아서 우클릭 하고 다시 시작 옵션을 누르면 재시작된다.

 

 

 

6) cmd로 변경 잘 됐는지 확인해보기

cmd로 다시 MySQL이 설치된 경로로 이동해준 뒤에 아까와 똑같이 mysql -u root -p 라고 입력한 뒤에 변경한 비밀번호를 입력하면 된다. Welceom 문구가 출력된다면 정상적으로 변경된 것이다.

 

 

 

 

 

 

2. MySQL에서 DataBase 만들기

 

1) root 라는 이름으로 새로운 connection 만들기 (이 때 방금 변경한 비밀번호가 필요하다.)

2) root connection으로 이동해서 아래의 쿼리문 작성해서 DB와 사용자를 생성하고 권한을 준다.

create user '유저이름'@'%' identified by '해당 사용자 비밀번호';
GRANT ALL PRIVILEGES ON *.* TO '유저이름'@'%';
CREATE DATABASE DB이름 CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
use DB이름;

위의 쿼리를 입력하고 한 줄씩 실행시키면 된다. 두번째 줄은 해당 유저에게 권한을 전부 준다는 의미이고, 세번째 줄은 데이터베이스를 생성하는 쿼리문이다. 마지막은 해당 데이터베이스를 사용한다는 의미이다. 

여기까지 정상적으로 실행이 됐으니 다음은 인텔리제이로 이동해서 블로그 프로젝트에 방금 만든 DB를 연결하는 작업을 해주면 된다.

 

 

 

 

 

 

3. Spring boot 프로젝트에 MySQL DB를 연동하기

 

 

1)  src/main/resources 에 기본적으로 application.properties 파일이 있는데 이 파일을 application.yml로 변경해주었다. yml이 더 가독성이 좋고 중복 코드를 줄일 수 있기 때문에 자주 쓰인다고 해서 yml로 변경했다.

 

 

 

2) build.gradle에 의종성 추가하기

나는 gradle 기반 프로젝트이기 때문에 build.gradle 파일로 이동해서 MySQL을 연결하는 의존성을 추가해줬다.

runtimeOnly 'mysql:mysql-connector-java'

runtimeOnly로 설정한 이유는 MySQL DB는 런타임 시에만 사용될 예정이라서 runtimeOnly로 적었다.

 

 

 

3) application.yml 파일에 DB 정보 추가하기

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
    username: db 생성할 때 적은 사용자 이름
    password: de 생성할 때 적은 사용자 비밀번호

순서대로 MySQL 설정을 적고 DB Source URL을 적고 DB 사용자 이름과 그 사용자 이름에 대한 비밀번호를 적어주면 된다.

 

 

 

4) 어플리케이션 실행하고 정상 작동 확인하기

위의 작업까지 끝내고 스프링부트 어플리케이션을 실행시키니 정상적으로 작동했다. 이제 기본 환경 설정은 끝났다. 내일부터는 본격적으로 컨트롤러와 서비스 클래스를 구현해보는 작업을 시작할 예정!