我正在尝试使用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
所以我不确定我是否正确接近这个。非常感谢任何帮助。
答案 0 :(得分:1)
尝试在-u
和$dbUser
之间添加空格。
答案 1 :(得分:0)
根据Does mysqldump return a status?,出现了问题,是的。由于您没有共享返回代码,我们无法说出是警告还是错误。
除此之外,您可以通过查看mysqldump
命令返回的STDERR output轻松了解到底出了什么问题。例如。你可以把它传递给database.err
:
mysqldump -X -udan -pdanPass danDB >/path/to/backup/danDB.xml 2>database.err
^^^^^^^^^^^^^^
答案 2 :(得分:-1)
这个对我有用
mysqldump --user=xxx --password=xxx databasename --xml > file.xml