docker로 Mysql Import , Export

2022. 11. 23. 16:29docker

-  가동 중인 docker 컨테이너 Id확인

> docker ps

 

Export 

- mysqldump 명령어로 dump뜨기 workbench의  server > Data Export하면 sql로 생성해줘서 편리하다

 

docker exec -it 컨테이너ID sh 				        # 도커 컨테이너에 접속해서

mysqldump -h127.0.0.1 -p비번 데이타베이스명 테이블명 > /tmp/테이블명.sql # Export를 실행하고

ls -al /tmp 						       # 저장된 파일 확인 

docker cp 컨테이너ID:/tmp/테이블명.sql /tmp   		       # 컨테이너 안의 파일 바깥으로 가지고 나오기

 

 

Import

- dump뜬 DB를 현재 docker 컨테이너로 이동 

docker cp /tmp/테이블명.sql 컨테이너ID:/tmp  	 	 	# 컨테이너에 파일 복사하기 

docker exec -it 컨테이너ID sh 			  	 	# 컨테이너에 접속해서 

mysql -h호스트주소 -p비번 데이타베이스명 < /tmp/테이블명.sql        # SQL스크립트 실행 -h, -p태그 후 띄어쓰면 실행이 안됨. 주의

mysql -h호스트주소 -p비번 -f -D 데이타베이스명 < /tmp/테이블명.sql   # 에러시 강제로 다음거 실행


ex) 
docker cp /goods.sql d61ded4207db:/tmp  ==> 현재 directory의 goods.sql을 컨테이너 id d61ded4207db의 tmp로 복사
docker exec -it d61ded4207db의 sh ==> 해당 docker id로 shell 접속
mysql -h127.0.0.1 -ppassword1234 PetDB < /tmp/goods.sql  ==> sql스크립트 실행.