Bien que vous puissiez exécuter des commandes de sauvegarde à partir de PHP, elles n'ont rien à voir avec PHP. Tout tourne autour de MySQL.
Je suggérerais d'utiliser l'utilitaire mysqldump pour sauvegarder votre base de données. La documentation se trouve ici :http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .
L'utilisation de base de mysqldump est
mysqldump -u user_name -p name-of-database >file_to_write_to.sql
Vous pouvez ensuite restaurer la sauvegarde avec une commande comme
mysql -u user_name -p <file_to_read_from.sql
As-tu accès à cron ? Je suggérerais de créer un script PHP qui exécute mysqldump en tant que tâche cron. Ce serait quelque chose comme
<?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*/}
Si mysqldump n'est pas disponible, l'article décrit une autre méthode, en utilisant le SELECT INTO OUTFILE
et LOAD DATA INFILE
commandes. La seule connexion à PHP est que vous utilisez PHP pour vous connecter à la base de données et exécuter les commandes SQL. Vous pouvez également le faire à partir du programme MySQL en ligne de commande, le moniteur MySQL.
C'est assez simple, vous écrivez un fichier SQL avec une seule commande, et vous le chargez/exécutez au moment de la restauration.
Vous pouvez trouver les docs pour select into outfile ici (il suffit de rechercher la page pour outfile). LOAD DATA INFILE est essentiellement l'inverse de cela. Voir ici pour la documentation.