Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java进行mysql数据库备份?_Java_Mysql_Mysqldump - Fatal编程技术网

如何使用java进行mysql数据库备份?

如何使用java进行mysql数据库备份?,java,mysql,mysqldump,Java,Mysql,Mysqldump,我试图使用以下代码进行mysql数据库备份,但当我运行该程序时,出现了如下异常。任何人都可以帮助解决这个问题 Java代码: String path = "D:/databasbac.sql"; String username = "root"; String password = ""; String dbname = "ranjith"; String executeCmd = "<Path to MySQ

我试图使用以下代码进行mysql数据库备份,但当我运行该程序时,出现了如下异常。任何人都可以帮助解决这个问题

Java代码:

        String path = "D:/databasbac.sql";
        String username = "root";
        String password = "";
        String dbname = "ranjith";
        String executeCmd = "<Path to MySQL>/bin/mysqldump -u " + username + " -p" + password + " --add-drop-database -B " + dbname + " -r " + path;
        Process runtimeProcess;
        try {
//            System.out.println(executeCmd);//this out put works in mysql shell
            runtimeProcess = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", executeCmd });
//            runtimeProcess = Runtime.getRuntime().exec(executeCmd);
            int processComplete = runtimeProcess.waitFor();

            if (processComplete == 0) {
                System.out.println("Backup created successfully");

            } else {
                System.out.println("Could not create the backup");
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
stringpath=“D:/databasebac.sql”;
字符串username=“root”;
字符串密码=”;
字符串dbname=“ranjith”;
String executeCmd=“/bin/mysqldump-u”+用户名+“-p”+密码+”--添加删除数据库-B”+数据库名+“-r”+路径;
进程运行时进程;
试一试{
//System.out.println(executeCmd);//此输出在mysql shell中工作
runtimeProcess=Runtime.getRuntime().exec(新字符串[]{“cmd.exe”,“/c”,executeCmd});
//runtimeProcess=Runtime.getRuntime().exec(executeCmd);
int processComplete=runtimeProcess.waitFor();
if(processComplete==0){
System.out.println(“备份创建成功”);
}否则{
System.out.println(“无法创建备份”);
}
}捕获(例外情况除外){
例如printStackTrace();
}

至少有两个问题:

  • 提供到
    mysqldump.exe
    的完整路径(例如
    C:\Program Files\MySQL\bin\mysqldump.exe
  • -p
    参数如果没有密码值,将强制mysqldump提示输入密码。您不需要它,因为您是以批处理模式运行它的。因此,要么提供密码
    -p“您的密码”
    ,要么更好(更安全)地使用选项文件,以避免在命令行上提供密码。请阅读更多关于此的信息

  • 我已经更新了我的答案,请检查并告诉MeeException现在不来了,但sop正在打印,好像无法创建备份一样