我使用这段代码来下载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";