[Spring Boot] Blog Project - MySQL 환경세팅

deannn.Park·2021년 5월 30일
0
post-thumbnail

이번 글에서는 스프링부트에 mysql을 연결하는 작업을 한다.

 

데이터베이스 생성


저는 mysql과 sequel pro를 사용중이므로 sequel pro를 사용해서 mysql에 접속하여 데이터베이스를 생성하겠습니다.

혹시 mysql이나 sequel pro가 설치가 안되어 있는분들을 위해 설치 방법이 적힌 포스팅 링크를 남겨드릴께요
MySQL 설치 방법
Sequel Pro 설치 방법

caching_sha2_password 인증 에러로 접속이 안되는 경우 아래 글을 참조

[MySQL] MySql 8.0이상 caching_sha2_password authentication error 해결 방법

1. MySQL 접속

2. 데이터베이스 생성

  • 좌측 상단에 Choose Database 버튼을 누른 후 Add Database 버튼을 누릅니다.

  • Database Name에 blog라 적고 Add 버튼을 누릅니다.

  • 좌측 상단에 Choose Database 버튼이 있던 자리에 방금 생성한 blog database가 선택된 것을 볼 수 있습니다.

 

외부 접속용 USER 생성


이번엔 Query를 사용해서 사용자를 생성 후, 외부 접속을 허용하고 모든 권한을 주는 과정을 해보겠습니다.

상단에 터미널 아이콘과 Query라 써져있는 버튼을 누릅니다. 그럼 중간에 쿼리를 입력하는 공간이 나옵니다.

CREATE USER 'username'@'%' IDENTIFIED BY 'userpassword';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';

쿼리를 입력하는 곳에 위의 쿼리문를 입력하면 됩니다.
username 자리에 원하는 이름을 입력하면 되고, userpassword 자리에 패스워드를 입력하면 됩니다.
CREATE USER에서 'username'@'%'는 모든 곳에서 접속한 사용자? 정도로 생각하면 됩니다. @ 자리에 IP를 입력하면 해당 IP에서만 접속이 되고, @를 입력하면 모든 곳으로 해당됩니다.
GRANT 문에서는 ON DB_NAME.TABLE_NAME TO 'username'@'%' 형식인데 %에서 접속한 username에게 DB_NAMETABLE_NAME을 접근할 권한을 준다고 생각하면 됩니다.
위의 쿼리문은 모든 DB와 테이블을 접근할 권한을 주는 것입니다.

위 사진과 같이 드래그 후에 'Run Selection' 버튼을 누르면 드래그한 쿼리문이 실행이 됩니다.

그럼 이제 MySQL에서 데이터베이스와 사용자 설정은 모두 끝났습니다.

 

Spring Boot 프로젝트에서 MySQL 연결


이제 다시 IntelliJ로 돌아가서
pom.xml 파일을 열고, mysql과 jpa를 주석처리 했던 것을 풀어줍니다.

mysql과 jpa에 해당하는 코드듣 각각 위와 같습니다.
pom.xml에서 변동사항이 있으니 우측 상단에 버튼을 눌러 적용 후에 다음 단계로 넘어갑니다.

Project 탭에서
src - main - resources - application.proerties
파일을 찾아줍니다. 이 파일의 이름을 application.yml로 바꿔줍니다.

properties vs yml

역할은 같지만 형식이 다르다. yml이 properties에 비해 중복되는 코드 양이 적다.

properties

spring.datasource.username=username
spring.datasource.password=1234
spring.activemq.close-timeout=true

yml

spring:
	datasource:
    	username: deannn
        password: 1234
    activemq:
    	close-timeout: true

이제 application.yml 파일을 열어 아래의 코드를 입력 합니다.

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
    username: username
    password: password

위에서 한 것과 같이 username에는 자신이 만든 사용자 이름 입력, password에는 해당하는 패스워드 입력.

이제 다시 프로젝트를 실행시켜 보면

위와 같이 잘 실행되는것을 볼 수 있습니다.

 


참고
https://getinthere.tistory.com/17?category=884180
https://youtu.be/GuHhQP0897s
https://youtu.be/G6fgEiI_pEA

profile
컴퓨터 관련 여러 분야 공부중

0개의 댓글