como hacer una copia de seguridad y restablecerla de una base de datos mysql en php

Forums: 

hola de nuevo a todos, estoy liada con mi proyecto y tengo que hacer un scrip que haga la copia de seguridad de la base de datos y la guarde donde el usuario quiera, ademas de restablecerla. Estoy trabajando con php y la bd es en mysql, os agradeceria que me echaran una mano. Gracias a todos

deathUser ha

Imagen de elgabo

[quote=deathUser]
Podrías ejecutar mysqldump directo desde el PHP y redireccionar la salida a donde quieras, o podrías meterle mano al código que usa phpMyAdmin para ese efecto.
[/quote]

La funcion que puedes utilizar es shell_exec("mysqldump")
Leete estos dos temas de foros.
http://www.esdebian.org/forum/viewtopic.php?forum=22&showtopic=41509
http://www.elguruprogramador.com.ar/foros/mensaje.asp?id=5486

Me parecen interesantes
Suerte.

Imagination is more important than Knowledge -- Albert Einstein

Imagination is more important than Knowledge -- Albert Einstein
Errar es humano, pero para dañar las cosas realmente bien, pero bien de verdad, necesitas la contraseña de root.

Debes tener en cuenta....

Imagen de iknaxio

Puedes usar una consulta 'SELECT OUTFILE' pero es necesario que el usuario que usas para conectarte al mysql tenga permisos FILE, no sé si ejecutando mysqldump con 'shell_exec' te puedas saltar aquello. Aunque en mas de una ocasión me he topado con aplicaciones de php que se conectan con el usuario root del mysql lo cual no es recomendable.

Para no hechar mano de las utilerias mysql* podrias hacer un 'SELECT' y guardar tu salida en un archivo en formato *.CSV (una linea por registro, con los campos separados por comas) y para reestablecer lees linea a linea el archivo y haces un 'insert' por cada una aunque deberias ver si primero te toca hacer un 'delete' para toda la tabla en cuestión.

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net

Pero de ley

Imagen de iknaxio

Pero de ley: 'SELECT * INTO OUTFILE...' y 'LOAD DATA INFILE' van a necesitar que el usuario de mysql que usas para conectarte con 'mysql_connect' tenga privilegios FILE.

Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.
See Section 5.8.3, “Privileges Provided by MySQL”.

Ver esta liga

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net