2012-02-04 7 views
0

나는 백업 MySQL 데이터베이스를이 명령을 사용하고 있습니다 : 이것은 위의 잘 작동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 파일을 복원되지 않는 것입니다 그거 비 었어. 무슨 일 이니?

답변

2

보다 큼 기호를보다 작은 기호로 변경하십시오. 지금 복원 작업에서 데이터베이스에 을 다시 쓰고을 파일에 저장하십시오. 이제 파일이 비었습니다. 파일을 지우고 있습니다. 일반적

mysql -h localhost -u root $this->database < $backup.sql 
             ^

, > 수단 < 판독 수단 물품.

2

당신은 <> 교체 복원 명령 줄을 변경해야합니다 :

$cmd = "c:/xampp/mysql/bin/mysql -h localhost -u root $this->database < $backup"; 
관련 문제