mysql—在macos中用java程序执行mysqldump

byqmnocz  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(260)

我使用的是macos mojave,mysqldump设置为path in ~/.bash_profile 使用macos终端时,mysqldump正在工作。
即使有 /bin/bash -c mysqldump 它在工作。
但是当我用我的java应用程序尝试它时,下面给出了一个错误。
错误/输出: command: [/bin/bash, -c, mysqldump -hlocalhost-u root -p123 some_database -r "/Users/Username/Workspace/backup.sql"] /bin/bash: mysqldump: command not found false 程序代码:

String cmd = "mysqldump -h" + dbHost + "-u " + dbUser + " -p" + dbPass + " " + dbName + " -r \"" + file.getAbsolutePath() + "\"";
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", cmd);
pb.redirectErrorStream(true);
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.directory(new File(System.getProperty("user.home")));
System.out.println("command: " + pb.command());  
Process process = pb.start();
int processComplete = process.waitFor();
if (processComplete == 0) {
    return true;
} else {
    return false;
}

我正在使用ampps安装mysql。
[更新]
我认为这个问题与netbeans有关。我正在测试netbeans。似乎没有加载 ~/.bash_profile

insrf1ej

insrf1ej1#

尝试使用此路径执行mysqldump /Applications/AMPPS/mysql/bin/mysqldump 你的命令应该是这样的

String cmd = "/Applications/AMPPS/mysql/bin/mysqldump  -h" + dbHost + "-u " + dbUser + " -p" + dbPass + " " + dbName + " -r \"" + file.getAbsolutePath() + "\"";

相关问题