0

특정 간격으로 라이브 서버에 데이터베이스를 백업해야합니다. 이를 위해 배치 파일을 생성하고 일반 Windows 'Schedular를 사용하여 실행을 예약했습니다. 백업 기능을 수행하기 위해 배치 파일에서 PHP 파일을 호출했습니다. PHP 파일, 나는 데이터베이스에 연결하고 데이터 구조를 가져 오기 위해 일반 MySQL의 쿼리를 사용하지만이 항상로컬 원격 데이터베이스 백업

Warning: mysql_connect() [function.mysql-connect]: [2002] A connection attempt failed because the connected party did not (trying to connect via tcp://[remote database server]) in [file on the local server] on line xx

가 그래서 내가 할 수있는 백업 원격 데이터베이스 로컬이 오류를 극복 저를 도와주세요 말하는 오류가 발생했습니다.

+0

배치 스크립트를 통해 mysqldump를 사용할 수 있다면 왜 PHP를 사용하고 있습니까? – feeela

+0

@feela o. . 죄송합니다 . . 실제로는 mysqldump가 아니다. . 내 시스템에는 wampserver가있다. . mysqldump에 대해서는 전혀 모른다. . – kushalbhaktajoshi

+0

@feela가 내 태그를 바꿨습니다 :) – kushalbhaktajoshi

답변

1

당신이 라이브 서버가 로컬 서버에 JSON 데이터를 전송하고 로컬 당신이 '돈이 방법으로 삽입이되어 사용할 수있는 또 다른 옵션 :

가 2002 오류를 설명 MySQL의 참조 여기에 대해 자세히 알아보기 구성을 다루어야 만하고 응용 프로그램의 다른 모듈이나 같은 데이터를 필요로하는 다른 응용 프로그램에 대해 동일한 프로세스를 쉽게 확장 할 수 있습니다.

-2
<?php 
ini_set('display_errors', 1); 
ini_set('max_execution_time', 0); 

$notify_me = 'true'; 
$email = 'notify email'; 
$this_server = 'FQDN of local server'; 
$remote_server = 'FQDN of remote server'; 

$dbserver = "localhost"; 
$dbuser = "root"; 
$dbpass = ""; 
$time_of_day = '22'; 
$day_of_week = 'Sat'; 
$backup_user = 'backups'; 
$who_am_i = 'Name for email to go to'; 
$backup_server = 'remote ftp server to upload to'; 
$ftp_user = 'ftp user name'; 
$ftp_pass = 'ftp password'; 



$command="php -q /home/$backup_user/create_mysql_dumps.php"; 
$job="0 $time_of_day * * * $command"; 
echo "(crontab -l | grep -v \"$command\" ; echo \"$job\") | crontab -"; 






shell_exec("(crontab -l | grep -v \"$command\" ; echo \"$job\") | crontab -"); 


@shell_exec("adduser $backup_user"); 



mysql_connect($dbserver, $dbuser, $dbpass); 

mysql_select_db("mysql"); 


function dirToArray($directory) { 

    $array_items = array(); 
    $handle = @ opendir($directory); 
     while (false !== ($file = @ readdir($handle))) { 
      if ($file != "." && $file != "..") { 
       if (is_dir($directory)) { 
        $array_items[] = $file; 
       } 

      } 
     } 
     @ closedir($handle); 

    return $array_items; 

} 





$sql = mysql_query("show databases"); 


while($row = mysql_fetch_array($sql)){ 
@shell_exec("mkdir /home/$backup_user/data/"); 
shell_exec("chmod 777 /home/$backup_user/data/"); 


shell_exec("rm /home/$backup_user/data/$row[0].sql -f"); 
    shell_exec("mysqldump -u $dbuser -p$dbpass $row[0] > /home/$backup_user/data/$row[0].sql"); 

    echo "Dbase Backup created for $row[0]\n"; 
    usleep(2000); 
    if(file_exists("/home/$backup_user/data/$row[0].sql")){ 

    if($notify_me == 'true'){ 
    mail($email, "Dbase Backup created for $row[0]", "Hello $who_am_i This is your backup script telling you that its working and saving a backup for $row[0] in /home/$backup_user/data/$row[0].sql", null, "-f [email protected]$this_server"); 

     } 
    } 

} 


@shell_exec("mkdir /home/$backup_user/data/"); 
shell_exec("chmod 777 /home/$backup_user/data/"); 

shell_exec("rm /home/$backup_user/data/all-databases.sql"); 
shell_exec("mysqldump -u $dbuser -p$dbpass --all-databases > /home/$backup_user/data/all-databases.sql"); 
echo "Dbase Backup created for All Databases\n"; 
    if(file_exists("/home/$backup_user/data/$row[0].sql")){ 
     if($notify_me == 'true'){ 
    mail($email, "Dbase Backup created for All Databases", "Hello $who_am_i This is your backup script telling you that its working and saving a backup for ALL SERVERS HAS BEEN CREATED", null, "-f [email protected]$this_server"); 

     } 
    } 

$homes = dirToArray("/home"); 
$exclude = array('backups', 'mail_admin', 'trials', 'vmail', 'lost+found', 'aquota.user', 'aquota.group'); 
foreach($homes as $home){ 

    if(!in_array($home, $exclude) & is_dir("/home/$home")){ 
    echo "File System Backup created for /home/$home\n"; 


     @mkdir("/home/$backup_user/files/"); 
     @mkdir("/home/$backup_user/files/$home"); 
     @shell_exec("rm /home/$backup_user/files/$home/* -R -f"); 
     shell_exec("cp /home/$home/* /home/$backup_user/files/$home/ -R -p"); 
     if($notify_me == 'true'){ 
    mail($email, "File System Backup created for /home/$home", "Hello $who_am_i This is your backup script telling you that its working and saving a backup for /home/$home in /home/$backup_user/files/$home", null, "-f [email protected]$this_server"); 

     } 
    usleep(2000); 
    } 



} 
if(date("D") == $day_of_week){ 

@shell_exec("rm /home/$backup_user/named/* -R -f"); 
@shell_exec("rm /home/$backup_user/httpd/* -R -f"); 
@shell_exec("rm /home/$backup_user/mysql/my.cnf -f"); 
@shell_exec("rm /home/$backup_user/php/php.ini -f"); 


@mkdir("/home/backups/named"); 
@mkdir("/home/backups/httpd"); 
@mkdir("/home/backups/named"); 
@mkdir("/home/backups/mysql"); 
@mkdir("/home/backups/php"); 


shell_exec("cp /var/named/* /home/$backup_user/named/ -R -p"); 
shell_exec("cp /etc/httpd/conf/* /home/$backup_user/httpd/ -R -p"); 
shell_exec("cp /etc/my.cnf /home/$backup_user/mysql/my.cnf -p"); 
shell_exec("cp /etc/php.ini /home/$backup_user/php/php.ini -p"); 
shell_exec("cp /etc/named.conf /home/$backup_user/named/named.conf -p"); 

@mkdir("/home/$backup_user/zip"); 


@shell_exec("rm /home/$backup_user/$this_server-backup-weekly.tar.gz -f"); 
shell_exec("tar -czvf /home/$backup_user/$this_server-backup-weekly.tar.gz /home/$backup_user --exclude=/home/$backup_user/$this_server-backup-weekly.tar.gz"); 


if(file_exists("/home/$backup_user/$this_server-backup-weekly.tar.gz")){ 
echo "Weekly Archive created for $this_server\n"; 
     if($notify_me == 'true'){ 
    mail($email, "Weekly Archive created for $this_server", "Hello $who_am_i This is your backup script telling you that its working and saving a weekly archive for $server at /home/$backup_user/$this_server-backup-weekly.tar.gz", null, "-f [email protected]$this_server"); 

     } 
    echo "sending backup to " . "http://$backup_server/backme_up.php\n"; 

    $file = "/home/$backup_user/$this_server-backup-weekly.tar.gz"; 

    $fp = fopen($file, 'r'); 

    $conn_id = ftp_connect($backup_server) or die("Couldn't connect to $ftp_server"); 
    echo "$conn_id, $ftp_user, $ftp_pass"; 
    ftp_login($conn_id, $ftp_user, $ftp_pass); 
    ftp_chdir($conn_id, "/home/$ftp_user"); 
    $contents = ftp_nlist($conn_id, "."); 
    if (ftp_delete($conn_id, "$this_server-backup-weekly.tar.gz")) { 
     echo "$this_server-backup-weekly.tar.gzdeleted successful\n"; 
     } else { 
     echo "could not delete $file\n"; 
     } 
    if (ftp_put($conn_id, "$this_server-backup-weekly.tar.gz", $file, FTP_ASCII)) { 
     echo "successfully uploaded $file\n"; 
     } else { 
     echo "There was a problem while uploading $file\n"; 
     } 


    ftp_close($conn_id); 
    fclose($fp); 
} 
} 


die(); 
exit; 
관련 문제