lunes, 21 de abril de 2008

Usando PHP para backups de Mysql

Aqui presento 2 metodos que uso constantemente para hacer un backup de Mysql :

  1. Hacer un Backup con un query desde php.
  2. Hacer un mysqldump usando System().

Hacer el backup desde un query en PHP

En este ejemplo usamos SELECT INTO OUTFILE query para crear un backup de una tabla :

$tableName = 'mypet';
$backupFile = 'backup/mypet.sql';
$query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query);


include 'closedb.php';
?>

recuperamos el backup con el query LOAD DATA INFILE como este :

$tableName = 'mypet';
$backupFile = 'mypet.sql';
$query = "LOAD DATA INFILE 'backupFile' INTO TABLE $tableName";
$result = mysql_query($query);


include 'closedb.php';
?>

Correr mysqldump usando la funcion system()

la funcion system() es usada para ejecutar programas externos . Mysql tiene una herramienta para crear backups (mysqldump) la cual podemos usar desde nuestro script php.

$backupFile = $dbname . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile";
system($command);

include 'closedb.php';
?>

No hay comentarios: