Backup automatico de BD MySql desde VFP
Yo utilizo la siguiente instrucción MySQL dentro de un bucle en FoxPro que va recorreindo las tablas:
TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
SELECT <<lxCampos>> FROM <<lxTabla>>
INTO OUTFILE '<<lxFichero_A_Copiar>>'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
ENDTEXT
SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)
donde lxCampos es la lista de campos de cada tablas (obviamente); puedes utilizar el asterisco, pero prefiero controlar el orden de campos porque pueda haberlos cambiado o porque esto me permite copiar y restaurar datos entre bases con diferente estructura por añadir nuevos campos.
Para restaurar las tablas, en otro bucle primero borro todas las tablas:
TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
TRUNCATE TABLE <<lxTabla>>
ENDTEXT
SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)
Y luego cargo los nuevos datos:
TEXT TO lxSQLInstruccion TEXTMERGE NOSHOW PRETEXT 2+4+8
LOAD DATA LOCAL INFILE '<<lxFichero_A_Recuperar>>'
IGNORE
INTO TABLE <<lxTabla>>
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY ''
(<<lxCampos>>)
ENDTEXT
SQLEXEC(lxConexion_Base_MySQL, lxSQLInstruccion)
Asegúrate de tener todos los permisos para las acciones a realizar y para usar archivos fuera del servidor local (para eso le aseguro que la carpeta destino donde guardar o recuperar los datos estén en un recurso compartido de forma que todos los equipos puedan acceder a ellos).