본문 바로가기

DATABASE

SSH 터널링을 통한 MySQL dump 파일 생성 shell script 작성

하고자 하는 것

1. ssh로 개발서버 접근

2. mysqldump 를 사용해 개발서버의 특정 테이블 dump sql 파일 생성 후 export

3. 나의 local 디비로 가져와 export된 sql파일 import

 

 

이슈사항

ssh 로 접근한 개발서버에 mysql이 깔려있지 않는다

 

 

문제해결

ssh 터널링을 통해 포트를 설정하여 로컬에서 원격 mysql 서버에 접근하도록 설정하자

 

 

 

- 폴더 위치 이동 후 스크립트 생성

touch myScript.sh

 

- 스크립트 수정

vi myScript.sh

 

- 스크립트 작성

#!/bin/bash

 

# SSH 터널 설정
# 사용자명, 호스트 및 SSH 키 경로 작성
# & : 명령어를 백그라운드에서 실행하라는 명령어

#       ssh로 접속 후 내 pc의 mysql을 사용하여 개발 디비에 접속하기 위해 백그라운드 실행

# -N : ssh 클라이언트에게 ssh 세션을 열지 말라는 명령어

ssh -L 33061:localhost:3306 user@your-ssh-server.com -i /path/to/your/private/key -N &

# 스크립트가 실행되는 동안 잠시 대기합니다.
sleep 2

# MySQL 쿼리 실행
# 로컬 포트 33061을 통해 원격 MySQL 서버에 접속
mysql -h 127.0.0.1 -P 33061 -u your-mysql-username -p

# ssh 터널종료

# 현재 쉘에서 실행 중인 첫 번째 백그라운드 작업을 종료하라는 의미

kill %1

 

 

- 예시

  # 로컬디비로 import하는 추가 script  

  # ssh 종료 후 로컬 mysql 접속해서 만들어진 sql 파일 import  

  mysql -u username -p database_name < sql_file_path/sql_file_name.sql  

 

 

 

 

 

끄읏 -!