이번 글에서는 스프링부트에 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 해결 방법
이번엔 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_NAME
의 TABLE_NAME
을 접근할 권한을 준다고 생각하면 됩니다.
위의 쿼리문은 모든 DB와 테이블을 접근할 권한을 주는 것입니다.
위 사진과 같이 드래그 후에 'Run Selection' 버튼을 누르면 드래그한 쿼리문이 실행이 됩니다.
그럼 이제 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