溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java備份MySQL

發(fā)布時間:2020-04-03 12:18:58 來源:網(wǎng)絡 閱讀:280 作者:qq5d1070a92e32e 欄目:MySQL數(shù)據(jù)庫

1 概述

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

2 創(chuàng)建備份路徑

如果沒有備份的存儲路徑首先創(chuàng)建路徑.

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

3 執(zhí)行命令

如果是直接用shell執(zhí)行的話:

mysqldump -u user_name -p database_name > xxxx\database_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

加入到環(huán)境變量,如果沒有加入的話輸入絕對路徑:

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

4 執(zhí)行

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

5 其他問題

如果沒有導出文件或者導出的文件為0KB,可能原因是:

  • 語法錯誤:命令的空格使用不當,路徑設置錯誤,使用了錯誤的參數(shù)等.
  • 環(huán)境問題:如在windows下沒有添加到環(huán)境變量,沒有加上"cmd /c".
  • 用戶名/密碼錯誤:這個....
  • 權限問題:用戶沒有相應權限,要登陸到mysql中授權.
向AI問一下細節(jié)
推薦閱讀:
  1. MySQL備份
  2. mysql備份腳本

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI