Hoewel je back-upopdrachten vanuit PHP kunt uitvoeren, hebben ze niet echt iets met PHP te maken. Het draait allemaal om MySQL.
Ik raad aan om het hulpprogramma mysqldump te gebruiken om een back-up van uw database te maken. De documentatie is hier te vinden:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .
Het basisgebruik van mysqldump is
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
U kunt de back-up vervolgens herstellen met een opdracht als
mysql -u user_name -p <file_to_read_from.sql
Heb je toegang tot cron? Ik zou willen voorstellen om een PHP-script te maken dat mysqldump als een cron-taak uitvoert. Dat zou zoiets zijn als
<?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*/}
Als mysqldump niet beschikbaar is, beschrijft het artikel een andere methode, met behulp van de SELECT INTO OUTFILE
en LOAD DATA INFILE
commando's. De enige verbinding met PHP is dat je PHP gebruikt om verbinding te maken met de database en de SQL-opdrachten uit te voeren. U kunt dit ook doen vanaf het MySQL-programma op de opdrachtregel, de MySQL-monitor.
Het is vrij eenvoudig:u schrijft een SQL-bestand met één opdracht en laadt/voert het uit wanneer het tijd is om te herstellen.
U kunt de documenten voor select into outfile hier vinden (zoek gewoon op de pagina naar outfile). LOAD DATA INFILE is in wezen het omgekeerde hiervan. Zie hier voor de documenten.