맛집 여행 캠핑 일상 생활

PHP mysqldump 받아서 다운로드 하는 방법 본문

LAMP

PHP mysqldump 받아서 다운로드 하는 방법

영은파더♥ 2016. 10. 21. 15:25
728x90

PHP mysqldump 받아서 다운로드 하는 방법


직접 덤프 받아서 다운로드 할 수도 있겠지만 브라우저에서 바로 덤프 받아서 다운로드 하는 방법입니다.

아래 예제는 리눅스 유저계정의 DB를 통으로 백업 받는 예제입니다.

<?

$DB_HOST = 'localhost';

$DB_USER = 'userid';

$DB_PASS = 'userpw';

$DB_NAME = 'dbname';


$BACKUP_PATH = '/home/'.$DB_USER.'/www/';

$BACKUP_NAME = 'DB_'.date("Ymd_His").'.sql.gz';

$BACKUP_FILE = $BACKUP_PATH.$BACKUP_NAME;

$DOWNLOAD_PATH = './'.$BACKUP_NAME;

$command = "mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME --opt | gzip > $BACKUP_FILE";


system($command);

if(file_exists($DOWNLOAD_PATH)) {

$filename = urlencode($BACKUP_NAME);

header("Content-Type: application/octet-stream;");

header("Content-Disposition: attachment; filename=$filename");

header("Content-Transfer-Encoding: binary");

header("Content-Length: ".(string)filesize($DOWNLOAD_PATH));

header("Cache-Control: cache, must-revalidate");

header("Pragma: no-cache");

header("Expires: 0");

readfile($DOWNLOAD_PATH);

unlink($DOWNLOAD_PATH);

}

else {

echo "File not found.";

}

?>

데이터가 많은 경우에는 실행시간을 연장시켜주는 조치가 필요할 것 같네요.

set_time_limit(0);


728x90
반응형
Trackback : | Comments :