Respaldar Base de Datos MySQL con PHP

En: PHP

21 Feb 2007

WP Greet Box icon
Hola! Si estás nuevo por aquí y te gusta lo que ves, puedes disfrutar de una actualización automática y gratuita por RSS para leer nuestros artículos completos cuando lo deseas en tu lector RSS favorito.

Existen varias maneras de respaldar base de datos MySQL, en este post unicamente mostraré una manera de hacerlo utilizando mysqldump() y PHP.

Basicamente lo que se realiza es un resplado de todas las bases de datos, por lo que el script debe ejecutarse como un usuario que tenga permisos sobre todas las bases. Adicionalmente se mantiene en disco las ultimas 3 copias de los respaldos.

  1. <?php
  2. // Realiza el Backup de las bases de datos
  3. $bdd = "--all-databases";
  4. $opt = "";
  5.  
  6. $backupFile = date("Y-m-d-H-i-s") . '.gz';
  7. $command = "mysqldump --opt $opt $bdd | gzip > $backupFile";
  8.  
  9. exec($command, $salida);
  10.  
  11. // Mantiene los ultimos 3 backups
  12. $days=3;
  13. $archivos = scandir("./");
  14. foreach ($archivos as $key => $val)
  15. {
  16. if(substr($val,-2) != "gz")
  17. unset($archivos[$key]);
  18. }
  19.  
  20. $i=count($archivos);
  21. foreach ($archivos as $key => $val)
  22. {
  23. if($i<=$days)
  24. break;
  25. unlink($val);
  26. $i--;
  27. }
  28. ?>

Descargar el código: backup

Otros post

Este post ha sido visto 7106 veces

9 nomentarios para Respaldar Base de Datos MySQL con PHP

Avatar

gama

Septiembre 21st, 2007 at 16:15

oyes y la conexcion como quedaria?
y para programarlo en cron tambien?

Avatar

neTo

Septiembre 22nd, 2007 at 10:45

La idea es ejecutarlo con un cron de un usuario que tenga los permisos sobre las bases de datos de tal forma no requieres autenticarte, sin embargo si deseas especificarlo con otro usuario puedes cambiar la linea 7 asi:

$command = “mysqldump -p[password] -u user_name –opt $opt $bdd | gzip > $backupFile”;

para el cron solo basta con ejecutar el comando:
php ruta_archivo/archivo.php
especificando antes cada cuanto deseas que se ejecute el cron…. me avisas cualquier duda

Avatar

javier

Octubre 4th, 2007 at 17:49

Esto no funciona en windows, yo tengo un servidor en windows 2000 y no realiza la copia.
Como seria bajo windows!

Avatar

neTo

Octubre 5th, 2007 at 08:55

Que error te entrega?. Es posible que no tengas instalado mysqldump o que la ruta donde esta instalado no esta agregada en las variables de entorno de sisetma, especificamente a la variable PATH.

Avatar

Enrique

Abril 24th, 2008 at 16:37

Hola q tal se que este post es muy viejo pero ahora tengo la necesidad de respaldar una BD, y necesito saber que cargo en la varianle $opt?

Agradesco su ayuda.

Avatar

neTo

Abril 25th, 2008 at 07:35

No es necesario colocar nada, si deseas puedes utilizarla para agregar comandos al mysqldump() como por ejemplo, si deseas especificar el protocolo podrias utilizar la variable $opt asi:

$opt =’–protocol=SOCKET’

Como digo, en realidad es una variable abierta para especificar comandos adicionales.

Avatar

Enrique

Abril 27th, 2008 at 14:59

Ok gracias por el aporte, en realidad ejecuto el script, pero me cra el respaldo sin archivos, es decir, crea el punto zip, pero con 0 bytes, sin nada de información.

Agradezco de antemano su ayuda.

Avatar

neTo

Abril 28th, 2008 at 10:48

Enrique, de lo que entiendo estas ejecutando el script desde un navegador, este esta diseñado para ejecturalo con un cron job (o tarea programada) del usuario root en linux. Entiendo que ese es el problema, ahora lo que puedes hacer es agregarles los parametros en la variable $opt para que especifiques el usuario y contraseña que tiene acceso a las bases de datos que deseas respaldar.

Te puedes informar de todos los comandos adicionales de mysqldump() en http://dev.mysql.com/doc/refman/5.0/es/mysqldump.html

Avatar

Pablo Veintmilla

Agosto 7th, 2009 at 16:15

Desde consola podríamos usar:
mysqldump –opt -u usuario -p basedadatos tabla > archivo.sql

Tabla es opcional, lo usamos si queresmos respaldar solo una tabla
Archivo es el nombre de archivo donde se guardará el respaldo.

Deja tu comentario!

Acerca de UnderMedia

Inspiración y Determinación |
En Blog UnderMedia se recopilan y publican periódicamente noticias, artículos o comentarios generados dentro de UnderMedia S.A.

Twitter UnderMedia

  • DiegoMattei: Excelente! ¡Gracias! no sabia donde Descargar Quick Time. De nuevo Gracias, me fue de ayuda. A favo [...]
  • xxxx: como puedo incluir este sistema de comentarios en mi web, no tengo la menor idea de como insertarlo [...]
  • juan: A mi me funcionó. Primero lo intenté con un archivo de 685 KB y nada,metí uno de 25,2 KB y si. As [...]
  • alex: hola chevere este sitio [...]
  • christian merchan ROBLES: HOLA ME GUSTARIA QUE ME AYUDEN CON UN EJEMPLO DETALLADO DE UN ANALISAS Y DESCRIPCION DE L PUESTO [...]

Comunidad

Ultimas visitas

Raking

  • Blogalaxia
  • Top Blogs Ecuador

Switch to our mobile site