我现在一直在看这个。
我从命令行运行了这个确切的命令,我知道它有效:
mysqldump --user=user --password=password db > C:\\db.sql
然而,在Java中,它只是跳过它并表示备份失败。我错过了什么?:
Process exec = Runtime.getRuntime().exec("mysqldump --user=user --password=password db > C:\\db.sql");
int processComplete = exec.waitFor();
if(processComplete == 0)
log.info("Backup successful.");
else
log.info("Backup failed. STOP GETTING HERE :(");
有什么想法吗?我在这里查看了其他问题,包括使用ProcessBuilder,但没有任何效果。
修改
试过这个:
exec = Runtime.getRuntime()。exec(" C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin \ mysqldump.exe --user = user --password = password db> C:\ db.sql&#34);
也没有运气。
我总是尝试/而不是\而且没有运气。我也重新启动了MySQL并检查了权限。
答案 0 :(得分:0)
问题似乎与我在代码中使用mysqldump的方式有关。当我重写命令时:
Process exec = Runtime.getRuntime().exec("mysqldump -u user -ppassword db -r C:\\db.sql");
有效。
将来任何人都想要解决方案。