0

我正在尝试备份我的一个数据库,mysqldump并尝试将其导出到一个已经存在的 xml 文件中。这是我所拥有的:

<?php
$dbUser = 'user';    // db User
$dbPass = 'pass';    // db User Password
$dbName = 'db';      // db name
$dest   = $_SERVER['DOCUMENT_ROOT'] . 'backup'; // Path to directory

class MySQLDump {
private $cmd;

function MySQLDump($dbUser,$dbPass,$dbName,$dest) {
    $fname = $dbName.'.xml';
    $this->cmd='mysqldump -X -u'.$dbUser.' -p'.$dbPass.' '.$dbName.
        ' >'.$dest.'/'.$fname;
}

public function backup() {
    system($this->cmd, $error);
    if($error) {
        trigger_error ('Backup failed: ' . $error . '<br />Attempted: ' . $this->cmd);
    }
}
} // end class def

$mysqlDump = new MySQLDump($dbUser, $dbPass, $dbName, $dest);  
$mysqlDump->backup();
?>

这总是会产生backup函数中抛出的错误。以下是$cmd' 的输出示例:

mysqldump -X -udan -pdanPass danDB >/var/www/prod/dan/web/backup/danDB.xml

知道出了什么问题吗?我从来没有真正使用过mysqldump,所以我不确定我是否正确地接近这个。任何帮助是极大的赞赏。

4

3 回答 3

1

尝试在-u和之间添加一个空格$dbUser

于 2013-03-05T23:42:32.200 回答
0

根据mysqldump 是否返回状态?出事了,是的。我们不能说是警告还是错误,因为您没有共享返回码。

除此之外,您还可以通过查看命令返回的STDERR 输出轻松了解究竟出了什么问题。mysqldump例如,您可以将其输入database.err

mysqldump -X -udan -pdanPass danDB >/path/to/backup/danDB.xml 2>database.err
                                                              ^^^^^^^^^^^^^^
于 2013-03-06T04:46:54.757 回答
-1

这对我有用

mysqldump --user=xxx --password=xxx  databasename  --xml > file.xml
于 2014-03-19T15:49:23.677 回答