私はデータベースをバックアップ/復元するためにmysqlコマンドを実行するためにPHPを使用しています。ローカルホストでは、実行可能ファイルを特定する必要があったため、問題なく動作しました。しかし、サーバー上では動作しません。これは私がPHPコードとして使用していますものです:MySqlコマンドmysqldumpが実行されていませんか?
public function backup() {
$backup = $this->backups.'/'.$this->db_name.'_backup_'.date('Y').'_'.date('m').'_'.date('d').'.sql';
$cmd = "mysqldump --opt -h $this->db_host -p $this->db_pass -u $this->db_user $this->db_name > $backup";
try {
system($cmd);
return $this->encode('Error',false,'Backup Successfuly Complete');
} catch(PDOException $error) {
return $this->encode('Error',true,$error->getMessage());
}
}
public function restore($backup) {
$cmd = "mysql --opt -h $this->db_host -p $this->db_pass -u $this->db_user $this->db_name < $backup";
try {
exec($cmd);
return $this->encode('Error',false,'Restore successfuly complete');
} catch(PDOException $error) {
return $this->encode('Error',true,$error->getMessage());
}
}
がある任意の変数を抽象化してください、私はコマンドは、サーバ上で動作していない理由を見つけるために探しています。
また、コマンドが実際に正しく実行されたかどうかをPHPで確認するにはどうすればよいですか? try
メソッドで私は常に肯定的な答えを得るので。
サーバーに適切な書き込み権限がありますか? –
$ cmdの値を表示し、サーバー上で手動で実行して、ここにエラーメッセージを報告してください。 – barsju
@barsju - phpMyAdminの意味ですか?私はそこでそれを実行し、何が起こるかを見ようとします。 – Roland