Embora você possa executar comandos de backup do PHP, eles não têm nada a ver com o PHP. É tudo sobre o MySQL.
Eu sugiro usar o utilitário mysqldump para fazer backup de seu banco de dados. A documentação pode ser encontrada aqui:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .
O uso básico do mysqldump é
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
Você pode então restaurar o backup com um comando como
mysql -u user_name -p <file_to_read_from.sql
Você tem acesso ao cron? Eu sugiro fazer um script PHP que execute mysqldump como um cron job. Isso seria algo como
<?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*/}
Se mysqldump não estiver disponível, o artigo descreve outro método, usando o
SELECT INTO OUTFILE
e LOAD DATA INFILE
comandos. A única conexão com o PHP é que você está usando o PHP para se conectar ao banco de dados e executar os comandos SQL. Você também pode fazer isso a partir do programa MySQL de linha de comando, o monitor MySQL. É bem simples, você está escrevendo um arquivo SQL com um comando e carregando/executando-o quando for hora de restaurar.
Você pode encontrar os documentos para selecionar em outfile aqui (basta pesquisar na página por outfile). LOAD DATA INFILE é essencialmente o inverso disso. Veja aqui para os docs.