Även om du kan köra backup-kommandon från PHP, har de egentligen ingenting med PHP att göra. Allt handlar om MySQL.
Jag skulle föreslå att du använder mysqldump-verktyget för att säkerhetskopiera din databas. Dokumentationen finns här :http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .
Den grundläggande användningen av mysqldump är
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
Du kan sedan återställa säkerhetskopian med ett kommando som
mysql -u user_name -p <file_to_read_from.sql
Har du tillgång till cron? Jag skulle föreslå att du gör ett PHP-skript som kör mysqldump som ett cron-jobb. Det skulle vara något liknande
<?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*/}
Om mysqldump inte är tillgängligt beskriver artikeln en annan metod med SELECT INTO OUTFILE
och LOAD DATA INFILE
kommandon. Den enda kopplingen till PHP är att du använder PHP för att ansluta till databasen och köra SQL-kommandon. Du kan också göra detta från kommandoraden MySQL-programmet, MySQL-monitorn.
Det är ganska enkelt, du skriver en SQL-fil med ett kommando och laddar/kör den när det är dags att återställa.
Du kan hitta dokumenten för att välja till outfile här (sök bara på sidan efter outfile). LOAD DATA INFILE är i huvudsak det omvända till detta. Se här för dokumenten.