MysqlDump返回空的数据库备份文件


MysqlDump Return a Empty database backup file

我使用这段代码来下载MySql数据库的备份,但是它下载了一个空文件。请同时指导如何恢复此备份。

<?php
//connect to database
include'connect.php';
$backupFile = $dbname . date("Y-m-d-H-i-s") . '.sql';
$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile";
system($command);
?>

system替换为echo,显示生成的命令,并在命令行手动执行。错误通常显示在STDERR上,它不会被system调用捕获,如果你得到一个空输出,这意味着它不能输出任何东西。先修复错误,然后再修复代码。我也会用passthru代替system

事后恢复备份使用(从命令行):

mysql -u<user> -p <database> < myfile.sql

您的变量被固定到选项中。试着改变这个:

$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile";

:

$command = "mysqldump -h $hostname -u $username -p $password $dbname > $backupFile";