[SpringBoot] Transfer MySQL to MariaDB

일단 해볼게·2022년 11월 29일
0

Springboot

목록 보기
15/26

Windows 서버에서 SpringBoot 서버와 MySQL이 연동되어 실행중이다. 서버windows개발m1 mac에서 진행하는 상태에서 MySQL을 MariaDB로 이전하려는 상황이다.

진행 과정

1. Windows) 기존 MySQL 포트 종료

netstat -a -o

명령 프롬프트에서 MySQL 포트를 찾는다. 대부분 3306 포트를 사용하고 있을 것이다.
3306 포트의 PID를 찾는다.

taskkill /f /pid 'PID번호'
ex) taskkill /f /pid 7213

3306 포트의 PID를 찾아 종료시킨다.

2. Windows) MariaDB 설치

https://jung-max.github.io/2020/06/24/Web-3_SpringBoot-MariaDb%EC%97%B0%EA%B2%B0/
위 주소를 보고 설치했다. (설치만)

3. Windows) DB & 사용자 생성 및 권한 수정

create user 'User 아이디’@'주소' identified by '비밀번호';
ex) create user 'root’@'localhost' identified by '1234';

4. Windows) 모든 DB 및 Table에 권한을 주고 로컬 및 외부에서도 접속가능하도록 설정

grant all on *.* to’User 아이디'@'%';

% -> 모두 접근이 가능

ex) grant all on *.* to’root'@'%';

5. Windows) 설정한 권한 적용

flush privileges;

6. Windows) DB 생성

create database 'DB name';
ex) create database jbmb;

7. Windows) DB 지정

use 'DB name';
ex) use jbmb;

8. Windows or M1) 기존 쿼리문으로 테이블 생성

M1에서 테이블 생성하려면 Windows에 설치한 MariaDB를 M1에서 연동해야한다.

ex)
create table 'Table name' {
	'id' int not null auto_increment;
}

9. M1 springboot) build.gradle 수정

<유지>

implementation 'mysql:mysql-connector-java'

MySQL connector를 그대로 사용

<추가>

implementation 'org.mariadb.jdbc:mariadb-java-client'

10. M1 springboot) application.properties 수정

<유지>

spring.datasource.username='DB username'
ex) spring.datasource.username=root

<변경>

spring.datasource.url=jdbc:mariadb://'IP주소':3306/'DB name'
spring.datasource.password='DB password'
ex)
spring.datasource.url=jdbc:mariadb://localhost:3306/jbmb
spring.datasource.password=1111

<삭제> 중요!

spring.datasource.driver-class-name=org.mariadb.cj.jdbc.Driver

궁금한 점

MySQL을 적용할 때는 MySQL connector driver를 설치하고 적용한 상태였다. 그러나 MariaDB를 적용할 때는 드라이버를 설치 후 build.gradle에 적용하면

cannot load driver class: org.mariadb.cj.jdbc.Driver

위의 오류가 뜨면서 연동이 되지 않는다. build.gradle에서 드라이버를 적용하는 코드를 지워야 연동이 되는데 내가 설정을 잘못한건지 이유를 모르겠다.

아쉬운 점

다 하고 떠오르는 생각인데 MySQL 기존 데이터를 백업하고 MariaDB에 적용했으면 좋았을 것 같다. MySQL, MariaDB 둘 다 3306 포트를 사용하다보니 포트가 겹치는 것에 집중한 나머지 백업을 놓쳐서 아쉽다.

참고

MariaDB 설치 : https://jung-max.github.io/2020/06/24/Web-3_SpringBoot-MariaDb%EC%97%B0%EA%B2%B0/
MariaDB 권한 수정 : https://veneas.tistory.com/entry/MySQL-MySQL-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D-%EB%B6%88%EA%B0%80%EB%8A%A5-%ED%98%84%EC%83%81-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%EC%A0%91%EA%B7%BC-%EA%B6%8C%ED%95%9C#3.1._%EA%B6%8C%ED%95%9C_%EC%A1%B0%ED%9A%8C

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글