Tema: FAQ's de PHP
Ver Mensaje Individual
  #53 (permalink)  
Antiguo 31/03/2003, 15:09
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
¿como exportar mi base de datos a un archivo 'archivo.sql'?

Créditos: Cluster
Tema: Bases de datos
Pregunta: ¿Como exportar mi base de datos en MySQL a un archivo fichero.sql?
Respuesta:

Para guardar una base de datos, sin ningún gestor como podría ser phpMyAdmin. Se podría usar el siguiente código. Tal cual está .. envia a descargar el "dump" (volcado de datos y estructura) de la Base de datos seleccinada, incluido todas sus tablas.


Código PHP:
<?
// Nombre del archivo de con el cual queremos que se guarde la base de datos
$filename "fichero.sql"
// Cabezeras para forzar al navegador a guardar el archivo
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filename");

$usuario="usuario";  // Usuario de la base de datos, un ejemplo podria ser 'root'
$passwd="contraseña";  // Contraseña asignada al usuario
$bd="base_de_datos";  // Nombre de la Base de Datos a exportar

// Funciones para exportar la base de datos
$executa "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd";
system($executa$resultado);

// Comprobar si se a realizado bien, si no es asi, mostrará un mensaje de error
if ($resultado) { echo "<H1>Error ejecutando comando: $executa</H1>\n"; }

?>
Nota: Este código es valido si PHP se esta ejecutando en Windows. En caso de ejecutarse en Linux sustituir:
Código PHP:
$executa "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd"
por:
Código PHP:
$executa "/mysql/bin/mysqldump -u $usuario --password=$passwd --opt $bd"
**Las rutas indicadas son hacia la correspondiente ubicación física de mysqldump (o mysqldump.exe) en sus sistemas ...

Si se desea que el archivo generenado ($fichero.sql) lo queremos dejar en el propio servidor (por ejemplo para hacer backups de esa BD Mysql automaticos lanzados por algun script nuestro ...) usar (en lugar de la anterior $executa): (notese el > $fichero )

Código PHP:
$executa "c:\\mysql\\bin\\mysqldump.exe -u $usuario --password=$passwd --opt $bd > $fichero"
Y .. quitar las cabeceras header() q se usan (todas).
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por Cluster; 31/03/2003 a las 15:48