我會分享一個簡單的php腳本,我通常用它來獲得Magento數據庫轉儲,佔用空間更小。
例如,您可以在Magento根目錄下創建一個名爲tiny-dump.php的文件,並將腳本粘貼到該文件中。稍後,如果您點擊url:http://mydomain.com/tiny-dump.php ...,那麼您可以運行該腳本...如果一切正常,您會在var /目錄中找到一個包含數據庫轉儲的SQL文件。文件名包含{DB名稱} - {當前日期} .SQL
爲了您的信息,我使用了一些想法,從這篇文章:http://www.crucialwebhost.com/kb/article/log-cache-maintenance-script/
腳本會工作,如果你的主機提供已經安裝了「的mysqldump」
這裏是對腳本的鏈接:https://gist.github.com/4495889
這裏是腳本:
<?php
$xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA);
$db['host'] = $xml->global->resources->default_setup->connection->host;
$db['name'] = $xml->global->resources->default_setup->connection->dbname;
$db['user'] = $xml->global->resources->default_setup->connection->username;
$db['pass'] = $xml->global->resources->default_setup->connection->password;
$db['pref'] = $xml->global->resources->db->table_prefix;
function export_tiny() {
global $db;
$sqlFileName = 'var/' . $db['name'] . '-' . date('j-m-y-h-i-s') . '.sql';
$tables = array(
'dataflow_batch_export',
'dataflow_batch_import',
'log_customer',
'log_quote',
'log_summary',
'log_summary_type',
'log_url',
'log_url_info',
'log_visitor',
'log_visitor_info',
'log_visitor_online',
'index_event',
'report_event',
'report_compared_product_index',
'report_viewed_product_index',
'catalog_compare_item',
'catalogindex_aggregation',
'catalogindex_aggregation_tag',
'catalogindex_aggregation_to_tag'
);
$ignoreTables = ' ';
foreach($tables as $table) {
$ignoreTables .= '--ignore-table=' . $db['name'] . '.' . $db['pref'] . $table . ' ';
}
$dumpSchema = 'mysqldump' . ' ';
$dumpSchema .= '--no-data' . ' ';
$dumpSchema .= '-u ' . $db['user'] . ' ';
$dumpSchema .= '-p' . $db['pass'] . ' ';
$dumpSchema .= $db['name'] .' > ' . $sqlFileName;
exec($dumpSchema);
$dumpData = 'mysqldump' . ' ';
$dumpData .= $ignoreTables;
$dumpData .= '-u ' . $db['user'] . ' ';
$dumpData .= '-p' . $db['pass'] . ' ';
$dumpData .= $db['name'] .' >> ' . $sqlFileName;
exec($dumpData);
}
export_tiny();
Kno的wn問題:有時如果DB密碼包含特殊字符,腳本無法創建數據庫轉儲。
希望,這是有幫助的!
你錯過了關閉''>'標記,但我已經添加了它,執行了腳本並沒有發生任何事情(沒有錯誤,但沒有轉儲)有關如何調試的想法? – Bogdan
@Bogdan這是一個很好的習慣,不要關閉php標籤,當你在php文件中只有php代碼時,請檢查以下內容:http://stackoverflow.com/questions/4410704/why-would-one-omit-the-close -tag – ceckoslab
你可以把這個打開php標籤之後:ini_set('display_errors',1); ...它應該顯示是否有任何錯誤。 – ceckoslab