Bases de Datos > MySQL
Copia De Seguridad
RadicalEd:
Busca cual es la función en JAVA para ejecutar comandos, y utiliza el mysqldump para ejecutarlo.
Por ejemplo yo hago Backup de unas tablas en particular con PHPasí:
exec("C:/AppServ/mysql/bin/mysqldump.exe -uusuario -ppassword -hlocalhost -B paginafiles --tables tboutsourcing_check_modi tboutsourcing_check > backup.sql");
Mira que el comando exec ejecuta todo lo que hay dentro del parentesis.
jpaler:
bueno... esto sirve para ejecutar un .exe en java:
--- Citar ---Process p = Runtime.getRuntime().exec("mysqldump.exe");
--- Fin de la cita ---
pero desconozco q asi como se ve... se le puedan agregar los parametros
q necesita mysqldump...
yo no realizo mi copia de seguridad ejecutando a mysqldump directamente
desde java, xq nunca supe como enviarle los parametros desde aki, se q
se puede claro esta... pero pa' no seguir perdiendo el tiempo buscando como
hacerlo, me decidi a hacerlo asi:
--- Código: Text --- String path = "C:\CopiaSeg.sql"; if (!(new File(path)).exists()) { String cad = "\"" + ruta_mysqldump + "\" --opt --password=" + password + " --user=" + usuario + " " + db + " > \"" + path + "\"\n"; File fcopi = new File("copia_seguridad.bat"); FileWriter fw = new FileWriter(fcopi); fw.write(cad, 0, cad.length()); fw.close(); pausa(2000);//espero 2 segundos Process p = Runtime.getRuntime().exec("copia_seguridad.exe"); }
Explico:
Lo q hago es crear un archivo copia_seguridad.bat y le hecho la cadena
q indica q debe ejecutar a mysqldump con el resto deparametros, asi
cad="C:\MySQL\bin\mysqldump.exe" --opt 123 --user root mi_db > C:\CopiaSeg.sql
luego hago una pausa de 2 seg, y ejecuto a copia_seguridad.exe q es un
archivo q hice para q cuando se inicie, ejecute al archivo copia_seguridad.bat
Es algo enredado, ya q doy mucha vuelta... pero aja, asi me toco hacer, xq
no encontre como ejecutar y enviarle parametros a auna aplicacion desde java.
Salu2 !!!
Kefalegereta:
Mmm....
No entiendo el porqué de la existencia del archivo "copia_seguridad.exe", ¿para qué lo utilizas?
¿Y los dos segundos de espera son para dejar tiempo para hacer el bakup? ¿Y si dura más de lo debido? Bueno, mi base de datos no es grande así que supongo también me hará servicio.
¿Y cargas el backup desde JAVA también o lo haces manualmente a MySQL?
Muchísimas gracias por la ayuda, un saludo.
Gracias, de verdad.
jpaler:
como lo hice hace rato... no recuerdo muy bien...
peros si no estoymal, hice copia_de_seguridad.exe para q me ejecutara
al .bat, pues creo q la fucion Runtime.getRuntime().exec("mysqldump.exe");
esta, no sirve tampoco para ejecutar .bat, solo .exe's y .com's
los segundos de espera, era solo paranoia mia... jejeje, ya q creia q habia
la posibilidad de mandar a ejecutar al .bat antes de q se hubira terminado
de copiar el comando completo... omite este codigo mas bien...
...,y porsupuesto q cargo los .sql desde java, solo hay q invertir la direccion
del flujo de >, por <
...
ahora, si tu encuentras como ejecutar a mysqldump con parametros y todo
desde java, uyyyy te saldria de papayita, ya q no tienes q hacer todas estas
piruetas q me toco a mi... y sin duda alguna, si lo llegas a encontrar, te
agradeceria q lo publiques para q le sirva a mucha gente aca en el foro.
Salu2 !!!
Navegación
[*] Página Anterior
Ir a la versión completa