当前位置: 首页 > 面试题库 >

备份mysql数据库Java代码

诸修伟
2023-03-14
问题内容

我试图运行以下代码来创建 数据库备份, 但是它显示了一些运行时错误。

但是,我尝试 在mysql shell中 运行 System.out.println()输出 部分(在给定的代码中已对此进行了注释)
,并且它可以正常工作

它显示io文件问题。请有人帮助我。

package files;

 public class tableBackup_1 {

public boolean tbBackup(String dbName,String dbUserName, String dbPassword, String path) {

    String executeCmd = "mysqldump -u " + dbUserName + " -p" + dbPassword + " --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(executeCmd);
            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;
}

public static void main(String[] args){

        tableBackup_1 bb = new tableBackup_1();
        bb.tbBackup("test","harin","1234","C:/Users/Master/Downloads/123.sql");

}
}



    mysqldump -u harin -p1234 --add-drop-database -B test -r C:/Users/Master/Downloads/123.sql
java.io.IOException: Cannot run program "mysqldump": CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
        at java.lang.Runtime.exec(Runtime.java:593)
        at java.lang.Runtime.exec(Runtime.java:431)
        at java.lang.Runtime.exec(Runtime.java:328)
        at files.tableBackup_1.tbBackup(tableBackup_1.java:12)
        at files.tableBackup_1.main(tableBackup_1.java:34)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
        at java.lang.ProcessImpl.start(ProcessImpl.java:30)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
        ... 5 more

问题答案:

请检查您的Global PATH环境变量是否在其中包含 \ bin(执行 echo %PATH%并查看)。有效地,您应该能够在Plain DOS提示符下键入System.out.println()内容,并且应该能够运行它。 mysql的路径>

即使无法解决问题,也请尝试将代码更改为如下所示执行

runtimeProcess = Runtime.getRuntime().exec(new String[] { "cmd.exe", "/c", executeCmd });

理想情况下,这应该可以解决该问题。

更新:

如果您在PATH环境变量中没有它,请将代码更改为以下内容

String executeCmd = "<Path to MySQL>/bin/mysqldump -u " + dbUserName + " -p" + dbPassword + " --add-drop-database -B " + dbName + " -r " + path;


 类似资料:
  • 问题内容: 我尝试运行以下代码来创建 数据库备份, 但它显示了一些运行时错误。 但是,我尝试 在mysql shell中 运行 System.out.println()输出 部分(在给定的代码中已对此进行了注释) ,并且它可以正常工作 。 它显示io文件问题。请有人帮助我。 问题答案: 请检查您的Global PATH环境变量是否在其中包含 \ bin(执行 并查看)。有效地,您应该能够在Plai

  • 主要内容:备份一个数据库,备份多个数据库,备份所有数据库数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。 保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,也会把损失降到最低。 数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库

  • 本文向大家介绍MySQL数据库备份恢复实现代码,包括了MySQL数据库备份恢复实现代码的使用技巧和注意事项,需要的朋友参考一下 数据库的备份 数据恢复 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我在MySql中有一个很大的数据库,我需要每天左右对其进行备份。 我需要能够从任何计算机上进行备份,因此我考虑制作一个php脚本来做到这一点,并将此php脚本置于联机状态(具有密码保护和授权等功能,因此只有我可以访问它)。 但是,我不知道如何正确完成? 我应该使用哪些命令,并且可以更改备份的设置(例如)? 我将不胜感激… 另外,如果这是一个错误的方法(不安全,或者使用错误的sql文件提

  • 本文向大家介绍xtrabackup备份还原MySQL数据库,包括了xtrabackup备份还原MySQL数据库的使用技巧和注意事项,需要的朋友参考一下 mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况 Xtrabackup可以解决mysqldump存在的上述的一些问题,生产环境应用的也会更多一些。 本文简

  • 在Windows上使用Workbase客户端(v6.3.5 x64)的最新副本,我试图从我的MySQL数据库创建一个转储文件,但总是只得到一个0~1Ko的转储文件。我在具有相同版本的两台服务器上尝试过,我得到了相同的结果: < li >执行任务时出错:“ascii”编解码器无法对位置7中的字符u'\xa3 '进行编码:序号不在范围(128)内 < li >执行任务时出错[错误32]该进程无法访问该