【发布时间】:2019-07-14 00:43:11
【问题描述】:
我尝试从我的 java 应用程序(使用 wamp 服务器)备份 mysql 数据库,但它不起作用,它总是显示消息“无法创建备份”。 这是我从这个线程中获取的代码: Backup a mysql [xampp] database in java
public static void saveBdd(){
String path = null;
String user = "root";
Process p = null;
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Choisir l'emplacement de la sauvegarde");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setAcceptAllFileFilterUsed(false);
fc.showOpenDialog(startPage);
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
try {
File f = fc.getSelectedFile();
path = f.getAbsolutePath();
path = path.replace('\\', '/');
path = path+"/bcpbdd_"+date+".sql";
} catch (Exception e) {
e.printStackTrace();
}
try{
Runtime runtime = Runtime.getRuntime();
p=runtime.exec("C:/wamp64/bin/mysql/mysql5.7.23/bin/mysqldump -u " + user + " --add-drop-database -B bcpbdd -r "+path);
int processComplete = p.waitFor();
if (processComplete==0) {
StartPage.afficheMessage("Backup Created Success!");
} else {
StartPage.afficheMessage("Can't create backup.");
}
} catch (Exception e) {
StartPage.afficheMessage(e.getMessage());
}
}
【问题讨论】:
-
你的mysql有密码保护吗?如果是,您必须在命令中提供它,否则它将不起作用
-
不,它不是(至少现在还不是),这就是我从命令行中删除 -ppassword 的原因。
-
要排除故障,打印出您正在执行的实际命令,然后尝试从命令行手动执行它。 (我希望 mysqldump 能够解释问题所在)。或者,正如其他人已经建议的那样,打印出您的流程输出(请参阅stackoverflow.com/questions/8149828/…)
-
好的,我知道了:mysqldump: Got error: 1049: Base 'bdd/bcpbdd_20-02-2019.sql' inconnue when selection the database
-
问题已解决,我的目标文件夹包含一个在命令行中被误解的空格,谢谢大家!
标签: java mysql wampserver