2017-05-21 58 views
1

我想轉儲一個MySQL數據庫(備份)。我有以下腳本。 passthru工作並將文件下載到客戶端,但我也希望它將備份的.gz文件的副本保存在服務器上的/ backup /文件夾中。 我無法讓它工作。 .gz文件下載到用戶,但不會放入/ backup文件夾。將mysql數據庫轉儲到gzip不保存服務器上的文件?

$filename = $thismoment . "_" . $_GET["t"] . ".gz"; 
    $mime = "application/x-gzip"; 

    system('mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip > /backup/' . $filename); 

    header("Content-Type: " . $mime); 
    header('Content-Disposition: attachment; filename="' . $filename . '"'); 

    $cmd = "mysqldump -u $DBUSER --password=$DBPASSWD $DATABASE | gzip --best"; 

    passthru($cmd); 

    exit(0); 
+0

您是否擁有該目錄的寫入權限?其實用戶'www'有權限;) –

+0

在Windows服務器上,我如何確保我的PHP腳本可以寫入文件? –

+0

我已經重新制作了本教程後面的/ backup /目錄:http://stackoverflow.com/questions/2900690/how-do-i-give-php-write-access-to-a-directory .txt文件被創建。但是備份文件仍然沒有。 –

回答

0

設法得到它的工作由兩個命令合併到一個指定的完整路徑的mysqldump(不.EXE ...)

$filename = $thismoment . "_" . $_GET["t"] . ".gz"; 
    $mime = "application/x-gzip"; 

    header("Content-Type: " . $mime); 
    header('Content-Disposition: attachment; filename="' . $filename . '"'); 

    $cmd = 'D:\Web\XAMPP\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' | gzip --best > backup/' . $filename; 

    passthru($cmd); 

    exit(0); 

感謝您的幫助!你指出我正確的方向。

相關問題