728x90
내 로컬에 있는 mySQL의 사용자 정보나
테이블을 import/export 하고 싶을 때 sql 파일을 빼거나 밀어넣어 보자
주의해야 할 것은 mysql 접속해서 입력하는 게 아니라, mysql 밖 터미널에서 입력하는 것이다
① DB Export
mysqldump –u DB사용자 –p DB명 > 파일명
ex) mysqldump -u root -p shabDB > /home/user/test.sql
⑴ 사용자를 포함한 전체 DB를 export할 때는 -A 옵션 사용
mysqldump -u root -p -A > 파일명
ex) mysqldump -u root -p -A > test.sql
⑵ DB에서 특정 테이블만 제외하고 export할 때는 --ignore-table 옵션 사용
mysqldump –u DB사용자 –p --ignore-table=제외할 테이블명 DB명 > 파일명
mysql -u root -p --ignore-table=products shabDB > ./test.sql
② DB Import
mysql -u root -p DB명 < 파일명
mysql -u root -p shabDB < ./test.sql
docker 안에서 dump 뜨는법
- Data Export
- Terminal Command
# Docker MySQL의 sh 접속
docker exec -it [Container-ID] sh
# MySQL 데이터 Dump
mysqldump -uroot -p [Database-Name] > /tmp/[File-Name].sql
# 해당 경로에 생성 확인
ls -al /tmp
# Docker Container 밖으로 파일 복사
docker cp [Container-ID]:/tmp/[File-Name].sql [PC의 저장할 경로]
- Data Import
- Terminal Command
# PC의 SQL File을 Docker 안으로 복사
docker cp [PC의 SQL 파일 경로] [Container-ID]:/tmp
# Docker MySQL의 sh 접속
docker exec -it [Container-ID] sh
# MySQL 데이터 Import
mysql -uroot -p [Database-Name] < /tmp/[File-Name].sql
# 만약에 Import 도중 에러가 나는 경우 강제로 계속 진행하게 할 때
mysql -uroot -p -f [Database-Name] < /tmp/[File-Name].sql
728x90
'database' 카테고리의 다른 글
Docker Mysql 테스트서버 DB분리 (0) | 2024.06.07 |
---|---|
Statement보다 PreparedStatement를 사용해야하는이유 (0) | 2024.06.06 |
mysql index를 타지않는 경우 (0) | 2024.03.17 |
Querydsl 방언 사용하기 (2) | 2024.02.12 |
MYSQL 조회시 FLOW (0) | 2023.04.11 |