Java備份MySQL

1 概述

使用java備份mysql數據庫,主要是使用mysqldump與Runtime().getRuntime().exec().java

2 建立備份路徑

若是沒有備份的存儲路徑首先建立路徑.mysql

Path path = Paths.get(xxxx);
try
{
    Files.createDirectories(path);
}
catch(IOException e)
{
    //xxxx
}

3 執行命令

若是是直接用shell執行的話:sql

mysqldump -u user_name -p database_name > xxxx\database_name.sql

使用-u與-p分別指定用戶與密碼,最後重定向到文件.
可是,要注意再java中用exec()時,千萬千萬不能使用-p選項,-p是交互式輸入密碼的,使用了-p的話導出的文件是0KB的,須要使用shell

--password

代替.數據庫

String command = "mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

要注意一下路徑問題,另外,在windows下,須要使用cmd:windows

String command = "cmd /c mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

這須要把bash

%MYSQL_HOME%/bin

加入到環境變量,若是沒有加入的話輸入絕對路徑:ide

String command = "cmd /c C:\\Program Files\\mysql\\bin\\mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

4 執行

try
{
    Runtime.getRuntime().exec(command);
}
catch(IOException e)
{
    //xxxx
}

5 其餘問題

若是沒有導出文件或者導出的文件爲0KB,可能緣由是:code

  • 語法錯誤:命令的空格使用不當,路徑設置錯誤,使用了錯誤的參數等.
  • 環境問題:如在windows下沒有添加到環境變量,沒有加上"cmd /c".
  • 用戶名/密碼錯誤:這個....
  • 權限問題:用戶沒有相應權限,要登錄到mysql中受權.
相關文章
相關標籤/搜索