我正在开发一个项目,我正在使用维护功能来转储和恢复数据库,以便与早期的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
我不确定是什么阻止了这一点。