首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恢复mysql数据库备份?

恢复mysql数据库备份?
EN

Stack Overflow用户
提问于 2012-02-04 16:06:37
回答 2查看 1.6K关注 0票数 0

我使用以下命令来备份MySql数据库:

代码语言:javascript
复制
public function backup() {
    $backup = $this->location.'/'.$this->database.'_backup_'.date('Y').'_'.date('m').'_'.date('d').'.sql';
    $cmd = "c:/xampp/mysql/bin/mysqldump --opt -h localhost -u root $this->database > $backup";
    try {
        system($cmd);
        $error              = false;
        $message['error']   = false;
        $message['message'] = 'Backup successfuly complete';
        return json_encode($message);
    } catch(PDOException $e) {

        $error              = true;
        $message['error']   = true;
        $message['message'] = $e->getMessage();;
        return json_encode($message);
    } 
}

上述方法运行良好,备份数据库时没有任何问题。下面是恢复备份的命令:

代码语言:javascript
复制
public function restore($backup) {
    $cmd = "c:/xampp/mysql/bin/mysql -h localhost -u root $this->database > $backup";
    try {
        exec($cmd);
        $error              = false;
        $message['error']   = false;
        $message['message'] = 'Restore successfuly complete';
        return json_encode($message);
    } catch(PDOException $e) {

        $error              = true;
        $message['error']   = true;
        $message['message'] = $e->getMessage();;
        return json_encode($message);
    } 
}

上述函数的问题是,当我执行它时,数据库没有恢复,而是备份数据库表的.sql文件被清空了。这是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-04 16:10:31

将大于号切换为小于号。现在,在您的还原作业中,您让数据库再次将写入到一个文件中;现在它已被清空,它正在清除文件。

代码语言:javascript
复制
mysql -h localhost -u root $this->database < $backup.sql
                                           ^

通常,>表示写入,<表示读取。

票数 2
EN

Stack Overflow用户

发布于 2012-02-04 16:12:07

您必须更改还原命令行,将>替换为<

代码语言:javascript
复制
$cmd = "c:/xampp/mysql/bin/mysql -h localhost -u root $this->database < $backup";
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9139416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档