将mysql数据库转储到gzip不会在服务器上保存文件?

时间:2017-05-21 00:11:34

标签: php mysql

我正在尝试转储mysql数据库(备份)。我有以下脚本。 passthru工作并将文件下载到客户端,但我还希望它在服务器的/ backup /文件夹中保存备份.gz文件的副本。 我无法让它发挥作用。 .gz文件下载到用户,但不会放入/ backup文件夹。

    $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);

1 个答案:

答案 0 :(得分: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);

感谢您的帮助!你指出我正确的方向。