使用java備份mysql數據庫,主要是使用mysqldump與Runtime().getRuntime().exec().
如果沒有備份的存儲路徑首先創建路徑.
Path path = Paths.get(xxxx);
try
{
Files.createDirectories(path);
}
catch(IOException e)
{
//xxxx
}
如果是直接用shell執行的話:
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
加入到環境變量,如果沒有加入的話輸入絕對路徑:
String command = "cmd /c C:\\Program Files\\mysql\\bin\\mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"
try
{
Runtime.getRuntime().exec(command);
}
catch(IOException e)
{
//xxxx
}
如果沒有導出文件或者導出的文件為0KB,可能原因是:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。