最近因公司需要基於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:[email protected]