java - 在java上备份mysql数据库

标签 java mysql wampserver

我尝试从我的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());
        }
    }

最佳答案

您可以使用 p.getErrorStream()p.getInputStream() 读取进程的输出 这应该在新线程中完成,然后您可以将输出写入日志文件或控制台。

关于java - 在java上备份mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784428/

相关文章:

java - Android MediaCodec,解码后的数据可以是原始大小的两倍吗?

mysql - 在mysql数据库上插入数据后如何更新ms sql数据库?

sql - 向 mysql 插入列表

mysql - 备份mysql数据库之前升级wamp

php - 如果主数据库已关闭,如何连接到辅助数据库(PHP)

java - 如何使用 Equivalence.wrap() 对 Set 进行重复数据删除?

java - 计算元音的数量并以元音较多的字符串在前的方式打印它们

mysql - wampserver 2.5 mysql数据位置没有改变

java - Firebase 数据顺序

mysql - 向表添加索引