본문 바로가기
👨‍💻 개발/spring boot

[나만의 Blog 만들기] #4. 구름 ide에서 MySQL 스프링 연결(Maven)

by 말랑한곰탱이 2021. 10. 27.

 현재 컨테이너 생성시에 MySQL을 설치한 상태이다. 이 상태에서 자바의 ORM기능을 사용하여 DB와 연동하기 위해 몇가지 과정이 필요하다. 

 

1. pom.xl에 관련된 의존성 추가

2. MySQL 사용자 추가/DB생성/권한부여

3. application 파일에 빌드 설정

 

1. pom.xl에 관련된 의존성 추가

 

        <!-- JPA -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>

 

'spring-boot-starter-data-jpa' 는 자바의 ORM(Object-Relational Mapping : 객체를 DB의 테이블에 자동으로 매핑 시켜주는 프레임워크)을 사용하기 위한 JPA 라이브러리다.

 

'mysql-connector-java'는 MySQL과 자바를 연결하기 위한 라이브러리다.

 

https://mvnrepository.com/artifact/mysql/mysql-connector-java

이곳에서 원하는 버전에 맞게 추가해주면 된다.

 

 

2. MySQL 사용자 추가/DB생성/권한부여

 

우선 mysql을 켜자.

 

# service mysql start	// mysql 시작
# mysql -u root -p	// root로 접속

 

사용자 계정을 추가하기 전, 현재 존재하는 계정을 확인한다.

 

mysql> use mysql;	// mysql DB선택
mysql> select host, user, password from user;	// user 테이블 보기

 

 

사용자 추가

 

mysql > create user 사용자ID;	// 사용자 추가
mysql > create user 사용자ID@localhost identified by '비밀번호';	// 사용자 추가 + 비밀번호 설정

//사용하던 계정에 외부 접근 권한을 주려면 Host를 localhost 대신 '%'로 해서 똑같은 계정을 추가한다.
mysql > create user 사용자ID@'%' identified by '비밀번호';	// '%' : 외부에서의 접근을 허용

 

 

이제 생성한 계정이 접근할 수 있는 데이터베이스를 생성하고 권한을 부여하자.

 

데이터베이스 생성

 

mysql > show databases;	// DB 목록 확인
mysql > create database DB명;	// DB 생성
mysql > create database DB명 default character set utf8;	// 한글 인코딩으로 DB 생성

 

 

권한 부여

 

// 계정이 이미 존재 하는데 IDENTIFIED BY '비밀번호' 부분을 추가하면 비밀번호가 변경된다.
mysql> GRANT ALL privileges ON DB명.* TO 사용자ID@locahost IDENTIFIED BY '비밀번호';
mysql> GRANT ALL privileges ON DB명.* TO 사용자ID@'%' IDENTIFIED BY '비밀번호';
mysql > flush privileges;	// 변경된 내용을 메모리에 반영(권한 적용)

 

권한 확인

 

mysql > SHOW GRANTS FOR 사용자ID@localhost;	// userid 와 host명까지 붙여서 검색해야 함
mysql > SHOW GRANTS FOR 사용자ID@'%';

 

 

 

3. application 파일에 빌드 설정

 

이제 application 파일에 DB정보를 입력해야한다. application 파일은 src/main/resources 폴더에 존재한다.

강의에서 .yml을 사용했기 때문에 yml로 설정해준다. 

 

spring:      
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul	# blog : DB명
    username: test	# 사용자ID
    password: test1234	# 비밀번호

 

 

 

참고

https://yangyag.tistory.com/367

https://www.youtube.com/watch?v=6bhF5o4gAOs&list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm&index=1