상똥이의 Back-End 공부방
[Board Project] 4. 데이터베이스 연동하기 (MySQL/ JPA) 본문
목차
0. MySQL Community가 설치되어있어야 한다
1. 프로젝트에 DataSource를 추가
2. 프로젝트용 데이터베이스를 생성
3. properties 작성하기
[1. 프로젝트에 Data source 추가하기]
1. intelliJ화면 왼쪽 위 view → Tool windows → Database → +(New) → MySQL
2. Data source properties 설정
(1) Name : @localhost
(2) Coment : local db
(3) Host : localHost
(4) Port : 3306
(5) Password : MySQL설치시 지정한 비밀번호 입력, 없다면 <hidden>상태로 두기
(6) User : root
3. 아래 Test Connection을 클릭해 연결되는지 확인
4. OK눌러 생성
[2. 프로젝트용 데이터베이스 생성하기]
1. 위의 4번까지 완료되면 뜨는 console 창에서 데이터베이스를 생성한다
- create database board; 를 입력해 board라는 이름의 데이터베이스를 생성한다.
- show databases;를 입력해 생성 확인
2. user계정 만들기
- 콘솔창에 아래와 같이 입력해 사용자 생성
- 생성된 사용자 확인하기
create user '아이디'@'localhost' identified by '비밀번호';
select user from mysql.user;
3. 권한 부여하기
- 생성된 사용자에게 부여된 권한을 확인하는 코드를 입력하여 실행시키면 부여된 권한이 없다는 경고창이 뜬다
show grants for '아이디'@'localhost';
- 아래와 같이 모든 권한을 부여하는 코드를 입력한 후 다시 권한을 확인한다
show grants for '아이디'@'localhost';
grant all privileges on 테이블명.컬럼명 to '아이디'@'localhost';
flush privileges;
4. 데이터베이스 board로 바꾸기
- board데이터베이스를 생성했으므로 처음 추가한 data source의 properties에서 database란에 board를 적어준다
[3. properties 작성]
1. resources 파일 내에 생성된 application .yaml에 아래의 내용을 입력한다
(원래는 properties 파일인데 yaml로 변경함)
debug: false
management.endpoints.web.exposure.include: "*"
logging:
level:
com.fastcampus.projectboard: debug
org.springframework.web.servlet: debug
org.hibernate.type.descriptor.sql.BasicBinder: trace
spring:
datasource:
url: "jdbc:mysql://localhost:3306/board"
username: "sangddong"
password: "testPW" //코드 안에 패스워드가 노출되는 것은 심각한 보안 문제이나, 일단 후에 수정하기로 한다
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
defer-datasource-initialization: true
hibernate.ddl-auto: create
show-sql: true
properties:
hibernate.format_sql: true
hibernate.default_batch_fetch_size: 100
h2.console.enabled: true
sql.init.mode: always
'프로젝트 > 게시판 만들기' 카테고리의 다른 글
[Board Project] 6. 데이터베이스 연결 테스트 준비 (mokaroo/ MySQL/ JPA) (0) | 2023.10.09 |
---|---|
[Board Project] 5. 데이터베이스 연동하기(2) (annotation/ JPA) (0) | 2023.09.05 |
[Board Project] 3. 도메인 설계 (ERD작성/ 자바 코드 작성) (0) | 2023.09.05 |
[Board Project] 2. 프로젝트 생성 (스프링 이니셜라이저/ UML/ api 설계) (0) | 2023.09.05 |
[Board Project] 1. Git 준비 (Git에서 폴더 생성/ kanban Board 활용) (0) | 2023.09.05 |