2010-09-20 12 views
10

Cómo copia de seguridad de la base de datos MySQL y descargarlo como un archivo .sql mediante el uso de códigos PHPcopia de seguridad de una base de datos MySQL y descarga como un archivo

+1

Quiero descargar el archivo con script PHP, desde mi panel de administración – mrN

+0

siguiente artículo le ayuda a hacer copias de seguridad y la base de datos mysql descarga como archivo sql o GZ format.Also puede estar lleno de bases de datos o tablas específicas de copia de seguridad. [http://faq.pctrickers.com/creating-mysql-database-backup-using-php/](http://faq.pctrickers.com/creating-mysql-database-backup-using-php/) –

Respuesta

5

Una solución muy simple sería algo así como (primer ejemplo): http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

Naturalmente, esto sólo se hará un volcado de datos de la tabla.

Lo que podría hacer es utilizar este código:

http://snipplr.com/view/173/mysql-dump/

Lo que este código hace que realmente se obtiene una descripción de la tabla (es decir, su estructura), crea todas las tablas y empuja a los datos. casi como cualquier otra herramienta.

Entonces es sólo una cuestión de salvarlo de la cadena en un archivo (file_put_contents() por ejemplo o algo similar, dependiendo de su preferencia y necesidad)

+0

Naturalmente, también puede simplemente generar el contenido de la cadena y forzar su descarga. . – AlexejK

+0

Estos usos obsoletos 'mysql_ *' cosas. Si hay algo más actualizado, realmente me gustaría saberlo. No puedo usar phpMyAdmin. – starleaf1

+0

Este código no incluye las claves (extranjeras, compuestas) que creó excepto la clave principal. –

0

¿Tiene phpMyAdmin? Si es así, puede exportar desde allí haciendo clic en "Exportar" en la parte superior (en la tabla/db seleccionada).

+0

I Quiero descargar el archivo usando el script PHP, desde mi Panel de administración – mrN

3
mysqldump -u username -p password database > file 

Alternativamente, phpMyAdmin puede hacer esto también con la herramienta Exportar.

+0

Mucho más rápido que phpMyAdmin, pero requiere acceso al shell. Por otro lado, PMA funcionará bien si solo tienes acceso a la web. – Piskvor

+0

Quiero descargar el archivo usando el script PHP, desde mi panel de administración – mrN

1

Uso phpmyadmin

Editar:

Puede utilizar shell_exec para ejecutar este comando

mysqldump -u nombre de usuario -p contraseña de la base de datos> archivo

Esto generará un archivo de volcado y luego redireccionar al usuario a este archivo generado.

+0

Quiero descargar el archivo usando script PHP, desde mi Panel de administración – mrN

-2

Si tiene phpMyAdmin puede hacerlo en el menú Exportar.

Si busca una herramienta de línea de comandos, eche un vistazo a mysqldump.

0

Sé que es un poco tarde, pero espero que alguien más va a encontrar esta.

//php file - html code: 
    require_once 'connect.php'; //holds database variables with connect details 
    require_once 'Admin_DatabaseFiles_Backup.php'; //Include the admin logout script 

<form action="" method="post" class="form form"> 
    <!--<input type="hidden" name="backup" value="1" />--> 
    <div class="float_left w200"> 
     <p> 
      <label class="title">Backup database</label> 
      <span class="left"> 
       <input type="checkbox" name="db" value="1" checked="checked"/> 
      </span> 
     </p> 
     <p> 
      <label class="title">Backup files</label> 
      <span class="left"> 
       <input type="checkbox" name="files" value="1" checked="checked" /> 
      </span> 
     </p> 
    </div> 
    <p class="float_left"> 
     <input type="submit" name="submit" value="Backup" class="button" /> 
    </p> 
</form> 

//php file Admin_DatabaseFiles_Backup.php: 
<?php 


if ($_POST['submit']=="Backup"){ 

    if ($_POST['db'] == "1"){ 

     $directory = "DatabaseFileBackups/"; 
     $dateAndTime = "".date('d-m-Y-H-i-s'); 
     $fileName = "".$dbname.$dateAndTime.".sql"; 
     $backupFile = "mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost $dbname > ".$directory.$fileName; 

     exec($backupFile,$output); 

     if($output == ''){ 
      echo = '<br />Failed To Backup Database!'; 
     }else{ 
      echo = '<br />Database Backup Was Successful!'; 
     } 
    } 

    if ($_POST['files'] == "1"){ 

      echo 'Seleceted files'; 

    } 
} 


?> 
Cuestiones relacionadas