首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在XAMPP中运行mysqldump

问无法在XAMPP中运行mysqldump
EN

Stack Overflow用户
提问于 2019-07-18 03:00:18
回答 1查看 110关注 0票数 0

我无法在xampp中执行mysqldump,它显示“系统无法找到指定的文件”。我使用了以下代码:

代码语言:javascript
复制
    public boolean backupDB(String dbName, String dbUserName, String dbPassword, String path) {

        String[] executeCmd = new String[] {
                "mysqldump.exe",
                "-u",
                dbUserName,
                "-p",
                dbPassword,
                "--add-drop-database",
                "-B",
                dbName,
                "-r",
                path
            };

        Process runtimeProcess;
        try {

            File pasta = new File("C:\\xampp\\mysql\\bin");
            runtimeProcess = Runtime.getRuntime().exec(executeCmd, null, pasta);
            int processComplete = runtimeProcess.waitFor();

            if (processComplete == 0) {
                System.out.println("Backup created successfully");
                return true;
            } else {
                System.out.println("Could not create the backup");
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        return false;
    }

当我运行此命令时,我得到以下错误:

代码语言:javascript
复制
    java.io.IOException: Cannot run program "mysqldump.exe" (in directory "C:\xampp\mysql\bin"): CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)
        at xd.test.backupDB(test.java:25)
        at xd.ee.main(ee.java:7)

设置一个是mysqldump,并且它是正确的扩展类型,它仍然找不到mysqldump。我试了所有的方法都不能解决这个问题,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-18 08:07:40

请使用ProcessBuilder,尝试如下所示:

代码语言:javascript
复制
String[] executeCmd = new String[] {
        "C:\\xampp\\mysql\\bin\\mysqldump.exe ",
        "-u ",
        dbUserName,
        "-p ",
        dbPassword,
        "--add-drop-database ",
        "-B ",
        dbName,
        "-r ",
        path
};

final ProcessBuilder pb = new ProcessBuilder(Arrays.asList(executeCmd));
final Process p;
try {
    p = pb.start();
    int processComplete = p.waitFor();

    if (processComplete == 0) {
        System.out.println("Backup created successfully");
        return true;
    } else {
        System.out.println("Could not create the backup");
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
        String line = null;
        while ( (line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57082571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档