MySQL 테이블을 별도의 파일로 자동 덤프
내장된 mysqldump 유틸리티를 사용하면 선택적 테이블 덤프가 가능하지만 미리 지정된 테이블 이름이 필요합니다. . 새 테이블 추가를 처리하는 동적 접근 방식의 경우 자동화된 솔루션이 필요합니다.
이러한 솔루션 중 하나는 데이터베이스에서 모든 테이블 이름을 동적으로 쿼리하고 각 테이블을 별도의 압축 파일에 덤프하는 셸 스크립트입니다. 이렇게 하면 덤프 스크립트에서 테이블 이름을 수동으로 유지 관리할 필요가 없습니다.
다음은 이 기능을 구현하는 샘플 스크립트입니다.
<code class="bash">#!/bin/bash # Descr: Dump MySQL table data into separate SQL files for a specified database. # Usage: Run without args for usage info. # Author: @Trutane [ $# -lt 3 ] && echo "Usage: $(basename ) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1 DB_host= DB_user= DB= DIR=${4:-.} [ -d $DIR ] || mkdir -p $DIR echo -n "DB password: " read -s DB_pass tbl_count=0 for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables') do echo "DUMPING TABLE: $DB.$t" mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz" tbl_count=$(( tbl_count + 1 )) done echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"</code>
이 스크립트는 데이터베이스 비밀번호를 묻는 메시지를 표시하고 지정된 데이터베이스를 쿼리합니다. 테이블 이름에 대해 각 테이블의 데이터를 SQL 명령으로 지정된 디렉터리(또는 기본적으로 현재 작업 디렉터리) 내의 개별 압축 파일에 덤프합니다.
위 내용은 MySQL 테이블을 별도의 파일로 자동 덤프하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!