通过PHP

时间:2015-05-27 18:03:01

标签: php mysql

我正在开发一个项目,我正在使用维护功能来转储和恢复数据库,以便与早期的git开发一起工作。我的数据库将发生很大的变化,所以我现在需要一种简单的方法来跟踪它。可能不是世界上最好的解决方案,但目前,这是处理它的好方法。

所以我的问题是我无法连接mysqldump。

我在这里借用其他帖子的代码:mysqldump via PHP

$command = "/usr/bin/mysqldump -u ".$database_user." -h ".$database_host." -p".$database_password." ".$database." > ".SERVER_PATH."data/testing.sql";

exec($command, $output, $return_var);

if($return_var !== 0) {
    $theTruth = "mysqldump for {$database_host} : {$database} failed with a return code of {$return_var}<br><br>\n\n";
    $theTruth .= "Error message was:<br>\n";
    $file = escapeshellarg("mysqldump_error.log");
    $message = `tail -n 1 $file`;
    $theTruth .= "- $message<br><br>\n\n";
    $theTruth .= "Exec: $command<br><br>\n\n";
    return $theTruth;
}

这已返回错误消息2:表示“未找到”。我遇到的问题是,我可以在终端上使用这个完全相同的命令,它按预期工作100%。

修改

使用passthru而不是exec并没有透露任何新​​内容。

我还将exec命令吐出到浏览器以确保它正确处理。这是修改后的版本(出于安全目的)

/usr/bin/mysqldump -u username -h localhost -ppass databasename > /path/to/save/every/thing/testing.sql

我不确定是什么阻止了这一点。

0 个答案:

没有答案