I když můžete provádět zálohovací příkazy z PHP, nemají ve skutečnosti nic společného s PHP. Je to všechno o MySQL.
K zálohování databáze bych doporučil použít nástroj mysqldump. Dokumentaci naleznete zde:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .
Základní použití mysqldump je
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
Zálohu pak můžete obnovit příkazem jako
mysql -u user_name -p <file_to_read_from.sql
Máte přístup ke cronu? Navrhoval bych vytvořit PHP skript, který spouští mysqldump jako úlohu cron. To by bylo něco jako
<?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*/}
Pokud mysqldump není k dispozici, článek popisuje jinou metodu pomocí SELECT INTO OUTFILE
a LOAD DATA INFILE
příkazy. Jediné spojení s PHP je, že používáte PHP pro připojení k databázi a spouštění SQL příkazů. Můžete to provést také z příkazového řádku programu MySQL, MySQL monitor.
Je to docela jednoduché, zapisujete soubor SQL jedním příkazem a načítáte/spouštíte jej, když je čas na obnovu.
Dokumenty pro výběr do výstupního souboru můžete najít zde (stačí na stránce vyhledat výstupní soubor). LOAD DATA INFILE je v podstatě opakem tohoto. Viz zde pro dokumenty.