MySQL 덤프 원격 데이터베이스
이 기사에서는 MySQL 원격 데이터베이스를 덤프하는 방법을 소개합니다.
MySQL 덤프란?
MySQL 덤프는 SQL 데이터베이스와 MySQL 데이터베이스 패키지를 다른 서버에 백업하는 프로세스입니다. 이 프로세스는 일반적으로 한 곳에서 복제본으로 레코드 백업을 유지합니다.
종종 이 프로세스는 일정이 잡혀 정시에 반복됩니다. MySQL은 사용자에게 권한이 있는 데이터베이스를 재생성할 수 있는 mysqldump
유틸리티를 제공합니다.
유틸리티는 스키마를 재생성하기 위해 모든 SQL 문이 포함된 플랫 파일을 시스템에 생성합니다.
덤프가 있는 서버가 반드시 MySQL 서버일 필요는 없습니다. DumpFile
은 모든 데이터베이스와 스키마를 추적하는 파일입니다.
백업 파일의 도움으로 데이터베이스 스키마는 다른 인스턴스나 서버에서 다시 생성될 수 있습니다. 파일에는 유사한 스키마 계층(데이터베이스->테이블->뷰->함수->레코드)을 다른 위치에 다시 채우는 creating
및 insert
와 같은 SQL 문 세트가 포함되어 있습니다.
덤핑 프로세스는 일반적으로 데이터베이스 크기에 따라 30분 이상 소요됩니다.
MySQL 덤프의 전제 조건은 다음과 같습니다.
- 유틸리티를 사용하려면 데이터베이스, 기능, 보기, 트리거에 대한 모든 액세스 권한이 있어야 합니다.
- 덤프된 파일은 새 스키마를 다시 생성하고 이에 대한 작업을 변경 및 삽입해야 하므로 생성, 변경, 삽입 권한이 있어야 합니다.
MySQL 덤프의 다른 구문
모든 데이터베이스에 대한 MySQL 덤프 구문:
mysqldump [options] --databases database_name ... > backupFileName.sql
테이블에 대한 MySQL 덤프 구문:
mysqldump [options] database_name [table_name ...] > backupFileName.sql
MySQL 워크벤치용 MySQL 덤프 구문:
mysqldump [options] --all-databases > backupFileName.sql
위의 구문은 데이터베이스, 테이블 및 모든 데이터베이스의 덤프를 형성합니다. 그 주장에 대한 설명은 아래와 같다.
mysqldump
키워드는 항상 시작 부분에 있어야 합니다. MySQL 문이 덤프를 생성한다는 것을 나타냅니다. SQL 덤프를 구성해야 함을 나타냅니다.- 키워드 뒤에 오는 옵션은 사용자가 필요에 따라 옵션을 추가/제거할 수 있음을 나타내는 필수 속성이 아닙니다. 옵션의 예는 다음과 같습니다.
2.1-u root -p
명령에는 옵션 목록에서 사용자 이름 및 암호 속성을 나타내는 하이픈u
및 하이픈p
옵션이 있습니다.root
는 MySQL에 설정된 사용자 이름이고 암호는 사용자가 선택합니다. --databases
키워드를 사용하면 백업할 데이터베이스 이름 뒤에 데이터베이스 이름을 지정할 수 있습니다.- 테이블 덤프의 경우 위에 제공된 것과 동일한 구문을 사용하여 테이블 이름 다음에 데이터베이스 이름을 지정합니다.
- 워크벤치 내 모든 데이터베이스의 백업을 생성하려면 파일에 특정 데이터베이스 이름 없이
--all-databases
를 직접 전달합니다. >
기호는 첫 번째 섹션의 출력이 연산자 뒤에 제공된 파일로 전달되어야 함을 지정합니다.backupfileName.sql
은 모든 덤프를 보관해야 하는 파일 이름입니다. 파일 이름은 파일의 절대 경로가 아닌 상대 경로로, MySQL 개발자 워크벤치의 bin 폴더에 백업 파일을 생성합니다.
원격 서버에서 로컬 시스템으로 MySQL 덤프
원격 서버에서 로컬 머신으로 MySQL을 덤프하는 명령은 다음과 같습니다.
쿼리는 원격 서버에 MYSQLdump
가 설치되어 있지 않을 때 작동합니다. 이 시나리오에서 터널은 로컬 시스템에서 원격 서버로 생성된 다음 로컬 시스템에 데이터를 덤프해야 합니다.
LINUX 환경은 SSH 보안 터널의 전제 조건입니다. ssh
명령도 동일하게 작동합니다.
ssh 터널을 생성하는 명령어는 아래와 같습니다.
ssh -f -L3310:localhost:3306 user@remote.server -N
ssh
키워드를 사용하면 시스템이 원격 서버와 암호화된 보안 연결을 생성할 수 있습니다. 이 명령을 사용하여 사용자는 서버 세부 정보를 알고 있는 원격 시스템과 보안 연결을 만들 수 있습니다.
ssh
명령과 함께 사용할 수 있는 다양한 옵션이 있습니다.
-
-f
옵션을 사용하면 프로세스가 실제 실행되기 전에 프로세스가 백그라운드로 이동할 수 있습니다. -
-L
옵션은 로컬 또는 클라이언트 시스템 포트가 원격 호스트 및 서버 시스템 포트로 전달되도록 지정합니다.위 쿼리에서 포트
3310
은 프로세스가 시작될 원격 호스트 포트입니다. 포트3306
은 localhost 서버 포트입니다. -
-N
옵션은 포트를 안전하게 전달하는 데 사용됩니다. 명령은 로컬 서버와 원격 서버 사이에 터널을 만드는 것입니다.
mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name
mysqldump
키워드는 데이터베이스 덤프를 생성할 호스트 시스템을 나타냅니다. 보안 연결이 설정되면 덤프가 형성됩니다.
-P
옵션은 원격 시스템이 연결을 설정하는 포트를 지정합니다. 위의 경우 포트는3310
입니다.-h
옵션은 원격 서버의 호스트 이름을 나타냅니다. 여기서 터널링 프로세스를 사용하여 연결이 이루어집니다.-u
옵션은 다음 인수가 원격 서버에 대한 보안 연결을 설정하는 데 도움이 되는 사용자 이름임을 나타냅니다.-p
옵션은 원격 서버에 연결하는 동안 사용할 암호를 나타냅니다.
위의 문장에서 제공된 데이터베이스 이름과 테이블 이름은 원격 서버에서 로컬 머신에 덤프될 테이블 이름을 나타냅니다.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn