Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire il backup del database MySQL in PHP?

Sebbene tu possa eseguire comandi di backup da PHP, in realtà non hanno nulla a che fare con PHP. Riguarda MySQL.

Suggerirei di utilizzare l'utilità mysqldump per eseguire il backup del database. La documentazione può essere trovata qui:http://dev.mysql. com/doc/refman/5.1/en/mysqldump.html .

L'utilizzo di base di mysqldump è

mysqldump -u user_name -p name-of-database >file_to_write_to.sql

Puoi quindi ripristinare il backup con un comando come

mysql -u user_name -p <file_to_read_from.sql

Hai accesso a cron? Suggerirei di creare uno script PHP che esegua mysqldump come cron job. Sarebbe qualcosa come

<?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 non è disponibile, l'articolo descrive un altro metodo, utilizzando il SELECT INTO OUTFILE e LOAD DATA INFILE comandi. L'unica connessione a PHP è che stai usando PHP per connetterti al database ed eseguire i comandi SQL. Puoi anche farlo dal programma MySQL da riga di comando, dal monitor MySQL.

È piuttosto semplice, stai scrivendo un file SQL con un comando e lo carichi/esegui quando è il momento di ripristinare.

Puoi trovare i documenti per selezionare nell'outfile qui (cerca nella pagina outfile). LOAD DATA INFILE è essenzialmente il contrario di questo. Vedi qui per i documenti.