Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP का उपयोग करके MySQL डेटाबेस का बैकअप / निर्यात कैसे करें

डेवलपर्स के लिए नियमित डेटाबेस बैकअप बहुत महत्वपूर्ण कार्य है। यह डेटा खोने के जोखिम को रोकता है जैसे कि हैकिंग या सर्वर क्रैश जैसी सर्वर पर कोई समस्या होती है। इसलिए भविष्य में किसी भी डेटा हानि से बचने के लिए आपको अनुसूचित डेटाबेस बैकअप सेट करना होगा।

आप कई तरह से mysql डेटाबेस बैकअप ले सकते हैं। आप सीधे अपने होस्टिंग cpanel में लॉग इन कर सकते हैं और कुछ ही क्लिक में पूर्ण बैकअप ले सकते हैं, लेकिन यदि आपके पास cpanel तक पहुंच नहीं है, तो आप साधारण PHP स्क्रिप्ट बना सकते हैं और इसे शेड्यूल्ड बैकअप पर सेट कर सकते हैं। तो इस पोस्ट में मैं MySql डेटाबेस बैकअप / निर्यात लेने के लिए निम्नलिखित उपयोगी PHP स्क्रिप्ट साझा करने जा रहा हूँ।


Mysql डेटाबेस बैकअप लेने के लिए निम्न PHP स्क्रिप्ट का उपयोग करें

<?php 
    // Pass your database information
    $mysqlUserName      = "db Username";
    $mysqlPassword      = "db Password";
    $mysqlHostName      = "db Hostname";
    $DbName             = "database name which you want to take backup";
    $backup_name        = "backup file name"; //optional
    $tables             = "Your tables"; //optional 
 
   //or add 5th parameter(array) of specific tables:    array("mytable1","mytable2","mytable3") for multiple tables
 
    exportDB($mysqlHostName,$mysqlUserName,$mysqlPassword,$DbName,  $tables=false, $backup_name=false );
 
    function exportDB($host,$user,$pass,$name,  $tables=false, $backup_name=false )
    {
        $mysqli = new mysqli($host,$user,$pass,$name); 
        $mysqli->select_db($name); 
        $mysqli->query("SET NAMES 'utf8'");
 
        $queryTables    = $mysqli->query('SHOW TABLES'); 
        while($row = $queryTables->fetch_row()) 
        { 
            $target_tables[] = $row[0]; 
        }   
        if($tables !== false) 
        { 
            $target_tables = array_intersect( $target_tables, $tables); 
        }
        foreach($target_tables as $table)
        {
            $result         =   $mysqli->query('SELECT * FROM '.$table);  
            $fields_amount  =   $result->field_count;  
            $rows_num=$mysqli->affected_rows;     
            $res            =   $mysqli->query('SHOW CREATE TABLE '.$table); 
            $TableMLine     =   $res->fetch_row();
            $content        = (!isset($content) ?  '' : $content) . "\n\n".$TableMLine[1].";\n\n";
 
            for ($i = 0, $st_counter = 0; $i < $fields_amount;   $i++, $st_counter=0) 
            {
                while($row = $result->fetch_row())  
                { //when started (and every after 100 command cycle):
                    if ($st_counter%100 == 0 || $st_counter == 0 )  
                    {
                            $content .= "\nINSERT INTO ".$table." VALUES";
                    }
                    $content .= "\n(";
                    for($j=0; $j<$fields_amount; $j++)  
                    { 
                        $row[$j] = str_replace("\n","\\n", addslashes($row[$j]) ); 
                        if (isset($row[$j]))
                        {
                            $content .= '"'.$row[$j].'"' ; 
                        }
                        else 
                        {   
                            $content .= '""';
                        }     
                        if ($j<($fields_amount-1))
                        {
                                $content.= ',';
                        }      
                    }
                    $content .=")";
                    //every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler
                    if ( (($st_counter+1)%100==0 && $st_counter!=0) || $st_counter+1==$rows_num) 
                    {   
                        $content .= ";";
                    } 
                    else 
                    {
                        $content .= ",";
                    } 
                    $st_counter=$st_counter+1;
                }
            } $content .="\n\n\n";
        }
        //$backup_name = $backup_name ? $backup_name : $name."___(".date('H-i-s')."_".date('d-m-Y').")__rand".rand(1,11111111).".sql";
        $backup_name = $backup_name ? $backup_name : $name.".sql";
        header('Content-Type: application/octet-stream');   
        header("Content-Transfer-Encoding: Binary"); 
        header("Content-disposition: attachment; filename=\"".$backup_name."\"");  
        echo $content; exit;
    }
?>




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कक्षाओं में पीडीओ का प्रयोग

  2. विस्फोट के बराबर () MySQL में तार के साथ काम करने के लिए

  3. पता लगाएं कि MySQL में मान संख्या है या नहीं

  4. MySQL डेटा स्रोत विजुअल स्टूडियो में नहीं दिख रहा है

  5. MySQL - मैं एक एकल INSERT कथन में कितनी पंक्तियाँ सम्मिलित कर सकता हूँ?