Java備份MySQL

kboypkb發表於2021-09-09

1 概述

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

2 建立備份路徑

如果沒有備份的儲存路徑首先建立路徑.

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

3 執行命令

如果是直接用shell執行的話:

mysqldump -u user_name -p database_name > xxxxdatabase_name.sql

使用-u與-p分別指定使用者與密碼,最後重定向到檔案.
但是,要注意再java中用exec()時,千萬千萬不能使用-p選項,-p是互動式輸入密碼的,使用了-p的話匯出的檔案是0KB的,需要使用

--password

代替.

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

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

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

這需要把

%MYSQL_HOME%/bin

加入到環境變數,如果沒有加入的話輸入絕對路徑:

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,可能原因是:

  • 語法錯誤:命令的空格使用不當,路徑設定錯誤,使用了錯誤的引數等.
  • 環境問題:如在windows下沒有新增到環境變數,沒有加上"cmd /c".
  • 使用者名稱/密碼錯誤:這個…
  • 許可權問題:使用者沒有相應許可權,要登陸到mysql中授權.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1916/viewspace-2824755/,如需轉載,請註明出處,否則將追究法律責任。

相關文章