使用java備份mysql數據庫,主要是使用mysqldump與Runtime().getRuntime().exec().java
若是沒有備份的存儲路徑首先建立路徑.mysql
Path path = Paths.get(xxxx); try { Files.createDirectories(path); } catch(IOException e) { //xxxx }
若是是直接用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"
try { Runtime.getRuntime().exec(command); } catch(IOException e) { //xxxx }
若是沒有導出文件或者導出的文件爲0KB,可能緣由是:code