我有我將用它來備份和恢復MySQL數據庫的小型應用程序,編碼備份如下所示,正常工作恢復mysql數據庫,如何備份和使用Java
....
String command = "mysqldump --host=" + dataBase.getHost() + " --user=" + dataBase.getUserName() + " --password=" + dataBase.getPassword() + " "
+ dataBase.getDatabaseName() + " -r " + dataBase.getBackupPath() + "/ofm_mnu_backup_" + bkDate + ".sql";
System.out.println(command);
Process p = null;
try {
Runtime runtime = Runtime.getRuntime();
p = runtime.exec(command);
int processComplete = p.waitFor();
if (processComplete == 0) {
System.out.println("Backup created successfully");
} else {
System.out.println("Could not create the backup");
}
....
但當我嘗試恢復使用它不工作下列代碼數據庫,請大家幫忙
........
String command = "mysqldump --host=" + dataBase.getHost() + " --user="+dataBase.getUserName() + " --password= " + dataBase.getPassword()+""+dataBase.getDatabaseName() + " " + dataBase.getBackupPath();
Process p = null;
try {
System.out.println(command);
Runtime runtime = Runtime.getRuntime();
p = runtime.exec(command);
int processComplete = p.waitFor();
if (processComplete == 0) {
System.out.println("Backup restored successfully");
} else {
System.out.println("Could not restore the backup");
}
......
這麼多的谷歌搜索後,我找到了答案我的事,
......
String[] executeCmd = new String[]{"mysql", [database], "--user=" + [username],"--password=" + [password], "-e", " source " + [absolute path to the sql file]};
p = Runtime.getRuntime().exec(executeCmd);
int processComplete = p.waitFor();
......
在上面的代碼中,最重要的事情是**「source」+ [sql文件的絕對路徑] **在'source'字和文件路徑之間不應該有逗號。
這對我有效,我希望它也適用於你們。
必須設置Mysql_home \ bin的路徑嗎? – adatapost
noup我沒有設置Mysql_home \ bin的路徑,因爲mysql作爲服務在我的服務器上運行 – Harsha