जबकि आप PHP से बैकअप कमांड निष्पादित कर सकते हैं, उनका वास्तव में PHP से कोई लेना-देना नहीं है। यह सब MySQL के बारे में है।
मैं आपके डेटाबेस का बैकअप लेने के लिए mysqldump उपयोगिता का उपयोग करने का सुझाव दूंगा। दस्तावेज़ीकरण यहाँ पाया जा सकता है:http://dev.mysql। com/doc/refman/5.1/hi/mysqldump.html ।
mysqldump का मूल उपयोग है
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
फिर आप
. जैसी कमांड के साथ बैकअप को पुनर्स्थापित कर सकते हैंmysql -u user_name -p <file_to_read_from.sql
क्या आपके पास क्रॉन तक पहुंच है? मैं एक PHP स्क्रिप्ट बनाने का सुझाव दूंगा जो mysqldump को क्रॉन जॉब के रूप में चलाती है। यह कुछ इस तरह होगा
<?php
$filename='database_backup_'.date('G_a_m_d_y').'.sql';
$result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);
if(empty($output)){/* no output is good */}
else {/* we have something to log the output here*/}
यदि mysqldump उपलब्ध नहीं है, तो लेख SELECT INTO OUTFILE
का उपयोग करके किसी अन्य विधि का वर्णन करता है। और LOAD DATA INFILE
आदेश। PHP से एकमात्र कनेक्शन यह है कि आप डेटाबेस से कनेक्ट करने और SQL कमांड निष्पादित करने के लिए PHP का उपयोग कर रहे हैं। आप इसे कमांड लाइन MySQL प्रोग्राम, MySQL मॉनिटर से भी कर सकते हैं।
यह बहुत आसान है, आप एक कमांड के साथ एक SQL फ़ाइल लिख रहे हैं, और जब इसे पुनर्स्थापित करने का समय हो तो इसे लोड/निष्पादित कर रहे हैं।
आप सेलेक्ट इन आउटफाइल यहां के लिए दस्तावेज़ पा सकते हैं (केवल आउटफाइल के लिए पृष्ठ खोजें)। LOAD DATA INFILE अनिवार्य रूप से इसका उल्टा है। देखें यहां डॉक्स के लिए।