Backup de base de datos MySql con PHP

Soy un joven webmaster que esta empezando en esto, y estoy intentando hacer un script en PHP para poder hacer copias de seguridad de bases de datos Mysql sin tener que entrar en el PHPMyadmin, directamente desde la web correspondiente. He hecho una aproximación, con la sentencia SELECT ... INTO OUTFILE 'file_name', y consigo exportar todos los datos de las tablas a un archivo de texto, pero se guarda en el directorio de la base de datos (como trabajo en localhost, en el directorio del mysql, si fuera online seria en el host).
¿Se puede hacer para que se exporte a un directorio de la web propiamente dicha?
O se puede manipular, recuperar o usar el archivo creado en el host de alguna forma, ¿para posibles y posteriores recuperaciones?

3 Respuestas

Respuesta
1
Aquí
http://forum.mamboserver.com/showthread.php?t=52988&highlight=backup
Tienes la explicación de uno que hizo ese mismo script, lo puedes descargar de allí mismo y mirarlo
Respuesta
1
Este es un script que yo tengo para hacer respaldos y para restaurar la base respaldada.
Puedes utilizar las siguientes instrucciones para primero realizar el respaldo.
$ruta = "C:/backup";
echo "<br>Destino del respaldo: <br>$ruta<br>";
echo "Bloqueando tablas...<br>";
mysql_query("lock tables maestro write",$link) or die(mysql_error());
echo "Realizando respaldo....<br>";
mysql_query("BACKUP TABLE maestro TO '$ruta' ",$link) or die(mysql_error());
echo "Desbloqueando tablas...<br>";
mysql_query("UNLOCK TABLES",$link) or die(mysql_error());
echo "<font color ='#FF0000'><b>---- Respaldo concluido. Verifique la creación de los archivos. ----</b></font>";

Para restaurar el archivo
			$currentdir = getcwd();
			$ruta = $currentdir."/backup";
			if (file_exists ($ruta."/maestro.MYD")){
				echo "Cargando archivos desde: <br>$ruta<br>";
				mysql_query("DROP TABLE IF EXISTS 'maestro'",$link);
				mysql_query("RESTORE TABLE maestro FROM '$ruta'",$link);
				echo "---- Restauración concluida. Verifique la creación de los archivos. ----";
				$restaurar = 0;
			}else{
				echo "El archivo a restaurar no existe...<br>---La restauración de los datos no se llevó a cabo.---";
			}

Para guardarlo en un archivo del cliente (web), se necesitaría descargarlo (tipo download) y el usuario elegiría en que lugar...
Respuesta
1
Como ya creaste el archivo lo único que tienes que hacerlo es copiar en tu directorio web, para ello realiza un script en PHP con la instrucción copy. También cuando hayas copiado el archivo puedes borrarlo del directorio de mysql con la instrucción unlink
Nota: Esto te sirve si conoces las rutas completas donde están los archivos, no sirve con rutas lógicas como por ejemplo ../images etc.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas