0

このコードを使用してmysqlデータベースをバックアップしていますが、目的に応じて正常に機能します。このスクリプトは、バックアップを.sqlファイルとして保存します。そのsqlファイルを圧縮するにはどうすればよいですか。コードは次のとおりです。

$username = "***";
$password = "***";
$hostname = "***";
$database = "***";
$username =escapeshellcmd($username);
$password =escapeshellcmd($password);
$hostname =escapeshellcmd($hostname);
$database =escapeshellcmd($database);
$backupFile=''.date("Y-m-d-H-i-s").$database.'.sql';
$command = "mysqldump -u$username -p$password -h$hostname $database > $backupFile";
system($command, $result);
echo $result;
4

4 に答える 4

4

出力をgzipなどにパイプするだけです

mysqldump -uroot | gzip > backupfile.zip

http://mediakey.dk/~cc/compressing-mysqldump-output-mysql-gzip-bzip2-and-lzma-7z/

于 2012-10-24T11:52:31.453 に答える
3

純粋な PHP ソリューションの場合、これでうまくいくと思います: ( http://www.php.net/manual/en/ziparchive.addfile.phpから)

$z = new ZipArchive();
$z->open("sqldump.zip", ZIPARCHIVE::CREATE);
$z->addFile($backupFile);
$z->close();
于 2012-10-24T11:54:19.643 に答える
0

あなたが使用することができますtartar -cf archive.tar yourfile.sqlを使用してexec()

于 2012-10-24T11:51:15.770 に答える