我使用以下命令来备份MySql数据库:
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);
}
}上述方法运行良好,备份数据库时没有任何问题。下面是恢复备份的命令:
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文件被清空了。这是怎么回事?
发布于 2012-02-04 16:10:31
将大于号切换为小于号。现在,在您的还原作业中,您让数据库再次将写入到一个文件中;现在它已被清空,它正在清除文件。
mysql -h localhost -u root $this->database < $backup.sql
^通常,>表示写入,<表示读取。
发布于 2012-02-04 16:12:07
您必须更改还原命令行,将>替换为<:
$cmd = "c:/xampp/mysql/bin/mysql -h localhost -u root $this->database < $backup";https://stackoverflow.com/questions/9139416
复制相似问题