我利用java去还原数据库 ,用这种方法是不是先要删除已有的数据库,才能还原现有的数据库,但是我这样做了后 ,已有的也删不掉,现有的也加不上, 但是也没有报异常!  请问市怎么回事
                    String stmt= p.get("binpath").toString()+"mysqladmin -u root -p admin drop rfcard"; 
  
  String stmt1 = p.get("binpath").toString()+"mysqladmin -u root -p admin create rfcard"; 
  
  System.out.println(stmt1);
          //打印出来:C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqladmin -u root -p admin create rfcard   String stmt2 = "mysql -u root -p admin rfcard < " + filepath; 
  System.out.println(stmt2);
//打印出来:mysql -u root -p admin rfcard < E:/20097916.sql

  String[] cmd = { "cmd", "/c", stmt2 };
  
  String message="";
  

  try { 
      Runtime.getRuntime().exec(stmt); 
  //Runtime.getRuntime().exec(stmt1); 
  //Runtime.getRuntime().exec(cmd); 
  message="数据已从 " + filepath + " 导入到数据库中"; 
  } catch (IOException e) { 
  e.printStackTrace(); 
  message="数据导入失败";
  }  
          

解决方案 »

  1.   

    用这种方法是不是先要删除已有的数据库,才能还原现有的数据库
    一般不用mysql -uroot -padmin rfcard < E:/20097916.sql
    这样应该可以了,你是怎样备份的?提示什么错误信息
      

  2.   

    没有任何错误信息
    我i这样备份的
     String filepath="e:/"+String.valueOf(year)+String.valueOf(month)+String.valueOf(day)+String.valueOf(hour)+".sql";
             String stmt1 = p.get("binpath").toString()+"mysqldump " + database + " -u " + user + " -p" + password + " --result-file=" + filepath; 

             String message="";
      try { 
      Runtime.getRuntime().exec(stmt1); 
       
      message="数据已导出到文件" + filepath + "中";
      } 
      catch (IOException e) { 
      e.printStackTrace(); 
      message="数据导出失败";
      } 
      

  3.   


    报这样的错误mysql> mysql -uroot -padmin rfcard < E:/20097916.sql;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
    corresponds to your MySQL server version for the right syntax to use near 'mysql
     -uroot -padmin rfcard < E:/20097916.sql' at line 1
    mysql>
      

  4.   

    mysql> mysql -uroot -padmin rfcard  < E:/20097916.sql;检查一下你的 stmt1 内容是什么?mysql -uroot -padmin rfcard  < E:/20097916.sql; 
    这是操作系统下的命令,不是mysql>工具中的。
      

  5.   

    mysql> mysql -uroot -padmin rfcard  < E:/20097916.sql;检查一下你的 stmt1 内容是什么?mysql -uroot -padmin rfcard  < E:/20097916.sql; 
    这是操作系统下的命令,不是mysql>工具中的。