mysqldump passthru returncode's

时间:2009-04-20 07:51:03

标签: php mysql mysqldump passthru

我正在尝试通过php进行mysql转储。

这是代码

$backupFile = $table. "-". date("Y-m-d-H:i:s") . '.gz';
    //Command nog aanpassen....
    $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname  | gzip > $backupFile";
    //$status = system($command);
    echo $backupFile ."<br>";
    $status = passthru($command, $a);
    echo "output:" .  $a;

$ a = 2的价值但是我找不到它的含义。我也无法在任何地方找到备份文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我不确定这是否是问题,但看起来您的密码传递参数不正确。

如果你使用-p,你需要在它旁边有密码,没有空格,如下所示:

$command = "mysqldump --opt -h $dbhost -u $dbuser -p$dbpass $dbname  | gzip > $backupFile";

或者使用long --password = $ dbpass。

例如:

$command = "mysqldump --opt -h $dbhost -u $dbuser --password=$dbpass $dbname  | gzip > $backupFile";

来自mysqldump手册页:

  

- 密码[=密码], - p [密码]

     

连接服务器时使用的密码。如果使用短选项表单(-p),则选项和密码之间不能有空格。如果在命令行上省略--password或-p选项后面的密码值,则会提示您输入密码值。

答案 1 :(得分:0)

也可以作为备份的目的地。确保您正在运行mysqldump的用户(在您的情况下可能是www-data或其他一些apache用户)对您尝试编写备份的目录具有写入权限。很多时候我会从命令行尝试命令..并且看它工作正常..但我是root用户,或者我的用户..而不是www-data。