簡體   English   中英

將db備份為xml時mysqldump出現問題

[英]Trouble with mysqldump when backing up db as xml

我正在嘗試使用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所以不確定我是否正確地使用了它。 任何幫助是極大的贊賞。

嘗試在-u$dbUser之間添加一個空格。

根據mysqldump是否返回狀態? 出問題了,是的。 我們不能說是警告還是錯誤,因為您沒有共享返回碼。

除此之外,通過查看mysqldump命令返回的STDERR輸出 ,您可以輕松地了解到底出了什么問題。 例如,您可以將其通過管道傳送到database.err

mysqldump -X -udan -pdanPass danDB >/path/to/backup/danDB.xml 2>database.err
                                                              ^^^^^^^^^^^^^^

這個為我工作

mysqldump --user=xxx --password=xxx  databasename  --xml > file.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM