使用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