local에서 docker instance를 통해 mysql을 구동하여 사용하고 있는 경우, dump 방법
macOS 기준, DataGrip 활용
1. terminal에서 mysqlworkbench 캐스크로 설치
$ brew install --cask mysqlworkbench
-> 일반 mysql을 brew install로 local에 설치해버리면, 기존 docker instance로 떠있는 mysql 설정을 DataGrip이 참고하던게, local용 mysql 설정을 참조하면서 권한이 밀리는 것 같음. Access Denied가 뜸!
이럴 땐
brew services stop mysql로 local로 설치된 mysql을 중단시켜버리고
docker로 실행하는 애플리케이션의 mysql container가 실행되도록 하여 참조가 걸리도록 하면 됨!
2. DataGrip에서 dump/restore
DataGrip에서 dump를 원하는 테이블을 우클릭 후, Export with mysqldump 선택
Path to mysqldump를 아래와 같이 설정
/Applications/MySQLWorkbench.app/Contents/MacOS/mysqldump
restore(load)를 원하는 테이블 우클릭 후, Restore with mysql 선택
Path to mysql을 아래와 같이 설정
/Applications/MySQLWorkbench.app/Contents/MacOS/mysql
path to dump는 위 mysqldump을 이용하여 dump한 파일의 path를 입력해주면 된다. restore가 정상적으로 되지 않으면, 3번 항목을 진행한다.
3. sql 파일 수정
참조 2에 나오는 내용이다.
linux:
sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i <FILENAME>.sql
mac:
sed -i '' 's/\sDEFINER=`[^`]*`@`[^`]*`//g' <FILENAME>.sql
위 명령어 입력하여 처리 후, dump한 sql을 열어서 찾기로 아래 항목들을 찾아서 주석처리 한다.
-- SET @@SESSION.SQL_LOG_BIN= 0;
-- SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
-- SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
참조
1)
2)
https://velog.io/@neulhan/%EC%A2%8C%EC%B6%A9%EC%9A%B0%EB%8F%8C-MySQL-RDS-dumpload-%ED%95%98%EA%B8%B0
'Project > Poppin' 카테고리의 다른 글
AWS ECR -> ECS 배포(VPC, 서브넷, NAT, ASG, 로드밸런서 등 전부!) 기초 (0) | 2024.01.14 |
---|---|
코틀린 logback 환경 분리, validated 검증, exception 처리, CD 적용 (1) | 2024.01.01 |
스프링부트: 시큐리티- 회원가입, 로그인 기능 추가하기, swagger 로그인 하기, @ControllerAdvice (0) | 2023.12.25 |
S3 이미지 업로드 구현, Profile 설정 및 불러오기, Swagger 이미지 업로드(multipart) (0) | 2023.12.25 |
Thymeleaf로 input 확인 및 수정 Admin 페이지 만들기(jquery, script) (0) | 2023.12.17 |