10 maneras de hacer copia de tu mysql – método 6
Relay | marzo 21, 20096. Usar PHP para hacer una copia de la base de datos.
Aunque las tres formas comunes son:
- Usar MYSQLDUMP desde el sistema
- Hacer la copia manualmente con PhpMyAdmin
- Usar PHP para extraer la base de datos
Hoy nos centraremos en la tercera opción y veremos como aplicar el resto desde PHP.
Volcando a un fichero con php:
<?php
include ‘config.php’;
include ‘opendb.php’;
$tableName = ‘mypet’;
$backupFile = ‘backup/mypet.sql’;
$query = «SELECT * INTO OUTFILE ‘$backupFile’ FROM $tableName»;
$result = mysql_query($query);
include ‘closedb.php’;
?>
Para restaurar dicho fichero, bastará ejecutar un LOAD DATA INFILE:
<?php
include ‘config.php’;
include ‘opendb.php’;
$tableName = ‘mypet’;
$backupFile = ‘mypet.sql’;
$query = «LOAD DATA INFILE ‘backupFile’ INTO TABLE $tableName»;
$result = mysql_query($query);
include ‘closedb.php’;
?>
Aunque puede parecer descabellado ir tabla a tabla, también esto permite que si hay un error en una de las tablas, simplemente recuperar la copia de esa tabla y no de la base entera.
Ejecutar mysqldump desde PHP:
También podemos usar la función de php llamada system() que ejecuta comandos desde la shell del sistema.
<?php
include ‘config.php’;
include ‘opendb.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’;
?>
Aunque es algo descabellado (para esto ya podríamos usar el cron), siempre es bueno tener otra opción 😀
Via | PHP Mysql Tutorial
Esto de verdad funciona??? es que yo tengo una pagina
Pegasus | junio 11, 2009Esto de verdad funciona??? es que yo tengo una pagina en php que tiene su propio script para generar la base de datos pero ahora quiero hacer copias de seguridad para cuando los usuarios o el administrador hagan modificaciones en ella, y me gustaria poner un boton para el administrador que ejecute un script que me haga la copia de seguridad. Lo malo es que mi base de datos consta de 8 tablas y es un latazo hacerlo tabla por tabla.
Claro que funciona, pero revisa los otros métodos (estan puestos
Relay | junio 11, 2009Claro que funciona, pero revisa los otros métodos (estan puestos al final de los métodos), por ejemplo: http://www.arlay.net/2009/03/20/10-maneras-de-hacer-copia-de-tu-mysql-metodo-5/