在phpMyAdmin中,可以將整個表(或數據庫)導出到.SQL文件中。導出SQL數據庫
我無法弄清楚它們是如何做到這一點的 - 因爲我想將它粘貼到CRON作業中來製作數據庫的每日和每週備份。但似乎沒有任何一個單一的命令能夠實現 - 在那裏?
在phpMyAdmin中,可以將整個表(或數據庫)導出到.SQL文件中。導出SQL數據庫
我無法弄清楚它們是如何做到這一點的 - 因爲我想將它粘貼到CRON作業中來製作數據庫的每日和每週備份。但似乎沒有任何一個單一的命令能夠實現 - 在那裏?
使用mysqldump
mysqldump -h hostname -u user -pPassword dbname >/path/to/file
主機是可選的,如果主機是localhost。取決於某些設置,用戶和密碼也可以是可選的。注意您可能要添加的日期名
mysqldump -h hostname -u root mydb > /path/to/backup/$(date +%a)
呀,mysqldump的:http://linuxcommand.org/man_pages/mysqldump1.html
你需要有,雖然使用它的服務器訪問。此外,如果您感覺冒險,並希望保持一致的備份,請查看有關主/從設置的信息。
您可以創建一個shell腳本並通過cron作業調用該腳本。 看到這個工作Example
您可以運行使用PHP這些命令,下面這段代碼複製到一個文件,並用cron作業執行它。
<?php
//Backup:
//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='databasename';
$mysqlUserName ='username';
$mysqlPassword ='password';
$mysqlHostName ='localhost';
//$mysqlExportPath ='database.sql';
$mysqlImportFilename ='myownsit_obsolcms.sql';
//DONT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
exec($command,$output=array(),$worked);
switch($worked){
case 0:
echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>';
break;
case 1:
echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
break;
}
//Restore:
$mysqlExportPath ='path_to_file/database.sql';
//DONT EDIT BELOW THIS LINE
//Export the database and output the status to the page
$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' admin contents categires google_map cms_labels news pages page_contents partners photos plugins products social testimonials themes users youtube> ~/' .$mysqlExportPath;
//$command = "$ mysqldump -u $mysqlUserName -p $mysqlPassword $mysqlDatabaseName > myownsit_obsolcms.sql";
exec($command,$output=array(),$worked);
switch($worked){
case 0:
//echo 'Database <b>' .$mysqlDatabaseName .'</b> successfully exported to <b>~/' .$mysqlExportPath .'</b>';
break;
case 1:
echo 'There was a warning during the export of <b>' .$mysqlDatabaseName .'</b> to <b>~/' .$mysqlExportPath .'</b>';
break;
case 2:
echo 'There was an error during export. Please check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';
break;
}
?>
我認爲這是通過調用['mysqldump'(http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html)用正確的參數來實現。 – ConcurrentHashMap 2013-03-05 12:18:33
http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/將幫助你 – Meherzad 2013-03-05 12:19:15