2013-07-16 37 views
0

我申请评论1和2 alternate.But我没有得到使用java.mysqldump cmd中的myqldump文件。我想在cmd输入mysqldump评论后询问密码。请帮助我。提前感谢。mysqldump文件创建一个空的sql文件

String dumpCommand = "C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\mysqldump" + " -u " + user + " -p" + " " + database + " > " + path; 
    **//command 1** 
    Runtime rt = Runtime.getRuntime(); 
    File test = new File(path); 
    PrintStream ps; 

    try { 
    // Process child = rt.exec("Cmd /c \"C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump\" -u root -p saxco > "+path);//command 2 

     Process child = rt.exec(dumpCommand); 
     ps = new PrintStream(test); 
     InputStream in = child.getInputStream(); 
     int ch; 
     while ((ch = in.read()) != -1) { 
      ps.write(ch); 
      System.out.write(ch); 
     } 

回答

0

如记录here你可以在这样[...] -pPASSWORD [...]命令中指定的密码。请注意,必须不是-p选项标志和实际密码之间的空格。

请记住,以这种方式指定密码存在安全风险!

+0

这是我的错误,请帮助**的mysqldump:找不到表 “>” ** – das

0

如果您不使用密码,请不要使用-p选项。

String dumpCommand =“C:\ Program Files \ MySQL \ MySQL Server 5.0 \ bin \ mysqldump”+“-u”+ user + database +“>”+ path;

或者这个,如果你有一个(没有间隙)

字符串dumpCommand = “C:\ Program Files文件\的MySQL \ MySQL服务器5.0 \ BIN \ mysqldump的” + “-u” +用户+“-p “+ password +”“+ database +”>“+ path;

+0

的mysqldump:遇到错误:1044:拒绝访问用户 '' @'本地主机'数据库'>'选择数据库时。但它将一些数据写入.sql文件。 – das

+0

数据库变量是否为空? 尝试在rt.exec()之前打印dumpCommand() –

+0

否,dumpCommand正在打印之前的rt.exec() – das

0

尝试这个 -

String cmd="mysqldump -u "+USER+" -p"+PASSWORD+" "+database+" --routines -r"+PATH; 

       Runtime runtime = Runtime.getRuntime(); 
       Process exec; 

       exec = runtime.exec(cmd); 

       int processComplete = exec.waitFor(); 
     if(processComplete == 0){ 
     System.out.println("Backup taken successfully in "+PATH+" on "+new Date()); 
     } else { 
     System.out.println("Could not take mysql backup :ERROR:"); 
     } 
+0

这是我的错误,请帮助** mysqldump:找不到表:“>”** – das

+0

您的cmd字符串应该像--->“mysqldump -u USERNAME -pPASSWORD DATABASE_NAME -rD:\\ dumpFile.sql”; –