注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

使用Runtime.getRuntime().exec()的方法调用本地mysqldump.exe备份还原数据库(路径中含有空格和数字)的方法  

2017-12-19 18:01:26|  分类: MySql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这个问题花费我两天时间,上网搜中文的资料大都换另一种方式解决的。说是在java中cmd不支持重定向,采用的另一种方式是得到Runtime.getRuntime().exec()的输入流,然后写到一个文本中。这个方法也不错(本人没有使用)。


今天要介绍的方法是调用本地的mysqldump.exe重定向的方式备份数据库。首先要说明的是mysqldump.exe在哪里不重要,重要的是要处理好路径中的非法字符


那我的代码做例子吧。


上面我的mysqldump.exe的位置在本地的

C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ui\WEB-INF\data\mau


直接调用肯定是不行的,因为路径中有空格。

解决方法是把空格换成

C:/Progra~1/Apache~1/Tomcat~1.0/webapps/ui/WEB-INF/data/mau

的样子。

这里分两种情况:

  • Program Files
类似这种的直接保留前六个字母,再加“~1”就行了
  • Tomcat 6.0 、tomcattomcat 6.0、tom 6.0、to 6.0
这个需要保留“.0”,最终换成Tomcat~1.0 、Tomcat~1.0 、tom6~1.0、to6~1.0
规律一看都能看明白。但是要用代码实现对于我来说挺麻烦的。这里就不说我写的代码了。高手可以留下代码共后人瞻仰,我是没有这个水平。><

最终调用的结果:

  1. str = "cmd /c C:/Progra~1/Apache~1/Tomcat~1.0/webapps/ui/WEB-INF/data/mau/mysqldump.exe -h127.0.0.1 -uroot -p1234 ui > C:/Progra~1/Apache~1/Tomcat~1.0/webapps/ui/WEB-INF/data/db/20120720180755.sql";  



调用:

  1. Process p = Runtime.getRuntime().exec(str); 
  评论这张
 
阅读(12)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018