我试图通过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;

这是一个$ = 2的价值,但我无法找到这意味着什么。我也无法找到备份文件的任何地方。

任何想法的?

有帮助吗?

解决方案

我不知道这是一个问题,但它看起来像你的密码传递参数不正确。

如果你使用需要-p有密码就在旁边,没有空格,就像这样:

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

或者使用长--password = $ DBPASS。

例如:

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

从mysqldump的手册页:

  

- 密码[=密码],-P [口令]

     

的密码连接到服务器时使用。如果使用短选项形式(-p),不能在选项和密码之间有一个空格。如果省略以下的命令行上--password或-p选项的密码值,则提示输入一个。

其他提示

也可能是您的备份的目的地。请确保您正在运行的mysqldump为(你的情况可能WWW的数据,或其他一些Apache用户)用户有写权限到您正在试图写入备份的目录。很多时候,我会尝试在命令行命令..看看它做工精细..但我的根,还是我的用户..不www数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top