기록

[튜토리얼] springboot에 데이터베이스(MySql) 연결하기(1) 본문

Web/Spring

[튜토리얼] springboot에 데이터베이스(MySql) 연결하기(1)

youngyin 2022. 8. 31. 10:00

1. 개발환경

  • mac OS (m1)
  • java 11
  • intellij IDEA 2022.2.1 (Ultimate Edition)
  • gradle

2. download mysql

install brew

cmd 창에 다음의 명령어를 입력하여 brew를 설치한다.

/bin/bash -c "$(curl -fsSL https://gist.githubusercontent.com/nrubin29/bea5aa83e8dfa91370fe83b62dad6dfa/raw/48f48f7fef21abb308e129a80b3214c2538fc611/homebrew_m1.sh)"

위와 같은 오류가 발생한다면, 아래 명령어를 입력한다.

eval $(/opt/homebrew/bin/brew shellenv)

install mysql

콘솔 창으로 mysql을 PC에 설치한다.

Caused by: java.sql.SQLException: Access denied for user '계정명'@'localhost'

 비밀번호를 설정하지 않았을 때 위와 같은 오류가 발생해서 비밀번호를 변경해주었다.

brew update // 최신 업데이트
brew install mysql
mysql --version 
mysql.server start
mysql -uroot -p // mysql 접속
// 초기 비밀번호 설정 없음(엔터)

create database testdb; // 데이터베이스 생성 
// 계정 생성 전 설정
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
// 계정 생성
create user 'youngyin'@'localhost' identified by 'youngyin';
GRANT ALL PRIVILEGES ON *.* TO 'youngyinl'@'localhost';
FLUSH PRIVILEGES ;
// 계정 생성 후 미리 설정한 root 권한 제거
drop user 'root'@'%';

// 비밀번호 변경
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '변경할-비밀번호';

quit // 접속 종료
mysql.server stop // mysql 서버 멈추기
install mysql workbench

MySQL 워크벤치는 SQL 개발과 관리, 데이터베이스 설계, 생성 그리고 유지를 위한  비주얼 데이터베이스 설계 도구이다. 데이터베이스의 변화를 쉽게 확인하기 위해서 이를 설치하였다.

㉮ OS버전에 맞는 워크벤치를 다운받는다. 

㉯ Connection을 새로 생성한다. 위에서 설정한 정보(계정정보, 비밀번호 등)을 입력하여 connection에 성공함을 확인할 수 있다. (이를 확인하기 위해서는 설치한 mysql server가 기동 중이어야 한다.)

3. 프로젝트에 연결하기

import library
// build.gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    annotationProcessor 'org.projectlombok:lombok'
    compileOnly 'org.projectlombok:lombok'

    implementation 'mysql:mysql-connector-java' // MySql
}
add resources/application.propertiese
# MySQL
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=youngyin
spring.datasource.password=yourPassword
add Database

마찬가지로 설정한 정보를 입력해주고, Test Vonnection을 클릭한다. 테스트에 통과하기 위해서는 mySql server가 켜져 있어야 한다.

test 작성하기
public class MySqlConnTest {
    private static final String DRIVER = "com.mysql.cj.jdbc.Driver";

    private static final String URL = "jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false";
    private static final String USER = "youngyin";
    private static final String PASSWORD = "yourPassword";

    @Test
    public void testConnection() throws Exception {
        Class.forName(DRIVER);

        try {
            Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
            System.out.println(connection);
            
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

4. 마무리하면서

위 포스팅에서 데이터베이스와 프로젝트를 연결했고, 아직 mapper은 연결되지 않았다. 이후 포스팅에서 mybatics를 사용하여 데이터를  로컬 데이터베이스에 영속화하고자 한다.

Comments