2009-10-21 5 views
1

업데이트 : 마지막으로이 문제가 해결되었지만 여전히 문제가 무엇인지 확실하지 않습니다. 네트워크 폴더를 통해 액세스하는 wamp 서버를 사용하고 있습니다.mysqldump 및 wamp

여전히 존재하는 문제는 mysqldump를 실행하기 위해 WAMP 서버를 호스팅하는 데 사용되는 실제 컴퓨터에서 PHP 파일에 액세스해야한다는 것입니다. 갱신

내가 WAMP 서버를 실행하고 백업 내가 가지고있는 MySQL 데이터베이스를 mysqldump를 사용하려고 시도하고의

끝. 다음은 mysqldump를 실행하기 위해 사용하고있는 PHP 코드이다.

exec ("mysqldump backup -u $ user -p $ pass> $ sql_file");

스크립트를 실행할 때 페이지가 불일치하게로드되고 백업이 생성되지 않습니다.

빈 파일이 생성되어 어떤 일이 발생하고 있습니다.

추가 정보 :

* exec() is not disabled 
* PHP is not running in safe mode 

어떤 아이디어? 윈 XP, WAMP, MYSQL의 5.0.51b

+0

MYSQL Administrator (GUI 도구)를 사용하여 데이터베이스에 연결하려고 시도했는데 "MYSQL 오류 번호 2003 localhost (10061)에서 MySQL 서버에 연결할 수 없습니다"라는 메시지가 나타납니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까 ??? – Adam

답변

1

mysqldump를

은 당신의 시스템에서 실행하도록되어 최대 시간 PHP를 초과 할 가능성이있다. cmd에서 명령어를 사용하거나 php.ini에서 max_execution_time을 늘리십시오.

0

나는 똑같은 일이 있었다. 한 동료가 MySQL GUI 도구를 지적 했으므로 그 도구로 백업을 수행했습니다. 함께 제공되는 Query Browser도 좋습니다.

MySQL GUI tools

0

그것은 mysqldump를에서 표준 에러 출력을보고 도움이 될 수 있습니다 :

$cmd = "mysqldump backup -u$user -p$pass 2>&1 > $sql_file"; 
exec($cmd, $output, $return); 
if ($return != 0) { //0 is ok 
    die('Error: ' . implode("\r\n", $output)); 
} 

은 또한 당신이 escapeshellarg() 경우 $user 또는 $pass는 사용자가 제공된다 사용해야합니다.

+0

스크립트에이 코드를 추가했지만 여전히 오류 정보를 얻지 못했습니다. 스크립트는 끝내지 않는 것 같습니다! 나는 set_time_limit (30)을 사용했다; 스크립트 전에는 아무 효과가없는 것 같습니다. – Adam

0

나는 또한 mysqldump 유틸리티를 사용하는 데 어려움을 겪고있다. 내 경험에 근거하여 확인/시도 할 사항은 다음과 같습니다.

  • 서버가 프로그램에서 exec 명령으로 프로그램을 실행할 수 있도록 설정되어 있습니까? (내 웹 호스트의 서버는 나를 허용하지 않습니다.) 다른 명령으로 테스트하십시오.

  • mysqldump 유틸리티가 설치되어 있습니까? whereis mysqldump으로 확인하십시오.

  • 를 추가해보십시오 최적화 인수

1

--opt 당신에게 $pass 정의하고 시작에 공백 문자가없는 확실한가요?

그렇지 않은 경우 mysqldump은 암호의 명령 줄 입력을 기다리고 있습니다.