最近因公司需要基于java备份mysql数据库,按照网络上多数建议使用以下命令备份:mysqldump -uroot -padmin minas >/usr/2.sql,使用该命令的java实现如下所示:
Runtime.getRuntime().exec("mysqldump -uroot -padmin minas >/usr/2.sql");
经测试发现:该语句{mysqldump -uroot -padmin minas >/usr/2.sql}在linux下直接执行是没有错误的,但是基于jdk调用时,不能实现对其备份。
故给出以下解决方法:
1.利用whereis命令查看mysqldump命令所在路径.如:whereis mysqldump,得到结果为:mysqldump: /usr/bin/mysqldump
2.将命令改为:/usr/bin/mysqldump -uroot -padmin minas >/usr/2.sql
3.java实现为
try{
String[] cmd=new String[]{"/bin/sh ","-c ","/usr/bin/mysqldump -uroot -padmin minas >/usr/2.sql "};
Runtime.getRuntime().exec(cmd);
}catch(Exception e){
}
mysqldump中参数的使用可参照baidu。
from:cnxieyang@163.com