从java程序备份mysql数据库

从java程序备份mysql数据库,java,database,backup,Java,Database,Backup,我正在尝试从Java应用程序备份我的数据库。目前,我使用xampp作为数据库的localhost。我在程序中尝试了这些代码,但当我执行这些代码时,程序处于等待状态。当我从命令行执行相同的代码时,它会询问一个密码,并在给出密码后成功创建备份文件backup.sql。 我使用的代码是: String executeCmd = "C:\\xampp\\mysql\\bin\\mysqldump.exe -u root -p db1 -r D:/mine/backup.sql"; Java代码:

我正在尝试从Java应用程序备份我的数据库。目前,我使用xampp作为数据库的
localhost
。我在程序中尝试了这些代码,但当我执行这些代码时,程序处于等待状态。当我从命令行执行相同的代码时,它会询问一个密码,并在给出密码后成功创建备份文件
backup.sql
。 我使用的代码是:

String executeCmd = "C:\\xampp\\mysql\\bin\\mysqldump.exe -u root -p db1 -r D:/mine/backup.sql";
Java代码:

    Process runtimeProcess;
    try {


        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();
    }

尝试使用包含密码的命令,如

String executeCmd = "C:\\xampp\\mysql\\bin\\mysqldump.exe -u root -pYOUR_DB_PASSWORD db1 -r D:/mine/backup.sql";
注意
-p
数据库密码之间没有空格


Edit1:(来自评论)

要重新存储数据库,您需要执行

mysql -u root -pPASSWORD db1 < /full/qualified/path/to/backup.sql

请参阅。

如果数据库密码为“”(null),我会写什么。@user1154781--
它会询问密码,并在给出密码后成功创建备份文件backup.sql。
--我以为您有密码。如果没有密码,我想,您应该从
executeCmd
中删除
-p
选项。嘿,它成功了,如果我必须在我的应用程序中将此文件还原为数据库,该怎么办。@user1154781很高兴它成功了。如果此答案解决了您的问题,请单击此答案旁边的勾号将其标记为已回答。如果您喜欢答案,您也可以单击答案旁边的向上箭头进行向上投票。我只是一个初学者,所以投票对我来说是禁止的。我肯定会在不久的将来进行投票。您能告诉我如何恢复保存的backup.sql文件吗
mysqldump --user MYSQL_USER --password=MYSQL_PASSWORD --add-locks --flush-privileges \
--add-drop-table --complete-insert --extended-insert --single-transaction \
--database DB_TO_BACKUP > FILENAME_FOR_SQL_STATEMENTS