2

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

1 回答 1

2

尝试使用带有密码的命令,例如

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

注意和之间的NO SPACE-pDATABASE PASSWORD


编辑1:(来自评论)

要恢复您的数据库,您需要执行

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

编辑2:(改进)

您可能还想尝试一些很酷的选项,例如

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

参考这里

于 2012-08-09T04:45:01.890 回答